Linux移行シリーズ
PuTTY設定
Linux版PuTTY
最初は使い方がよく分からなかった
でも慣れてくると、config ファイルをGUI化したもの、という感覚
- ソフトを開くと、中央の大きい欄で
configを選べて、LoadSaveDeleteができる Default Settingsがあり、PuTTY起動時にデフォルトで読み込まれる。ほかのconfigを作るときのテンプレでもある- SSH設定を追加するには
Host Name/IP addressPortなどを入れて、Saved Sessions下の空欄に名前を入れて、最後にSaveを押す - 後で設定を変更するときは、まずその設定をクリックして
Load(=設定を開く)、編集したらSave(=保存)
先に Default Settings を整えておくと、新しいSSH設定を作るときの手間が減る
以下、自分の基本設定メモ
- Window
ウィンドウサイズ変更
デフォルトのSSHウィンドウが小さすぎるのでColumnsRowsを適切に - Window ->> Selection
Ctrl Shift C/VをClipboardで使えるように(ターミナルと一致) - Connetction
TCP keepalives
これをオンにしてSSH接続を維持
これだけだと足りないので、上のSending of null packets to keep sessions activeに送信間隔(例:4秒)も設定する - Connetction ->> Data
Auto-login usernameにログインユーザー名を入れておくと毎回打たなくて済む - Connetction ->> Proxy
ネットが制限されている環境では必須。詳述しない
以上がPuTTYの基本設定。フォントや色などは好みで。
(設定に少し時間がかかったので、書き残さないと損
公開鍵認証でログイン
本当の「一键ログイン」をしたいなら、公開鍵認証でログインを設定すると良い。便利で安全、やらない理由がない
参考资料
荒岛 - SSH那点事:公钥验证/两步验证/Fail2ban
Log in to a Linux server with an SSH private key on a Windows client
How To Use Putty with an SSH Private Key Generated by OpenSSH
自分が初心者すぎて、荒岛の最初の教程を読んでも「どっちがローカルでどっちがリモートか」が分からなかった。2本目を読んでやっと理解した
大体の思路
ローカルPCで鍵ペアを作り、秘密鍵は自分で安全に保管し、公開鍵をリモート側に置き、リモート側で公開鍵認証を有効化する
そうするとローカルからログインするとき、リモートが公開鍵を見て「見覚えのある端末だ」と判断して通す
步骤
- ローカルPCで鍵ペアを生成
ssh-keygen -b 4096を実行し、Enter連打でid_rsaid_rsa.pubが生成される
1つ目が秘密鍵(大事に保管)、2つ目が公開鍵(共有用)
- リモート側で公開鍵認証を有効化
mkdir -p ~/.ssh && touch ~/.ssh/authorized_keysリモート側で鍵を保存するファイルを作るchmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys権限を設定して他人に読まれないようにvim ~/.ssh/authorized_keysにローカル側の公開鍵を貼るvim /etc/ssh/sshd_configsshd設定PubkeyAuthentication yes公開鍵認証をオンPasswordAuthentication no(optional) 必要ならパスワード認証をオフ
systemctl restart sshdsshdを再起動
- PuTTY側で鍵ログインを設定
puttygenで鍵を変換
PuTTYはRSA秘密鍵ファイルをそのまま使えないので、PuTTY用形式に変換する必要がある。PuTTYを入れると変換ツールも入る。コマンドはputtygen inputfile -o ouputfile
puttygen ~/.ssh/id_rsa -o ~/.ssh/id_rsa_puttyで秘密鍵を変換- 認証方式で鍵を選ぶ
Connetction ->> SSH ->> Auth
Private key file for authenticationに変換したid_rsa_puttyを指定して保存
これで「一键ログイン」でリモートに入れる
完結撒花
更新
2020/09/16 更新
ローカルで鍵ペア生成はデフォルトでRSA
ネットでは ed25519 の方が安全性が高いという話もある
ssh-keygen -t ed25519 -b 2048 で ed25519 鍵が作れる
2020/09/17 update
How to Change Default SSH Port in CentOS 8
How To Change OpenSSH Port On CentOS 7
Need to allow SSH port(eg.2244) through the firewall
sudo firewall-cmd --permanent --remove-service=sshsudo firewall-cmd --permanent --add-port=2244/tcpsudo firewall-cmd --reload