メモ:PuTTYの設定と公開鍵認証でログイン

公開日

原文言語: 中国語 。 AI翻訳: 英語 日本語


Linux移行シリーズ

PuTTY設定

Linux版PuTTY
最初は使い方がよく分からなかった

でも慣れてくると、config ファイルをGUI化したもの、という感覚

  • ソフトを開くと、中央の大きい欄で config を選べて、Load Save Delete ができる
  • Default Settings があり、PuTTY起動時にデフォルトで読み込まれる。ほかの config を作るときのテンプレでもある
  • SSH設定を追加するには Host Name/IP address Port などを入れて、Saved Sessions 下の空欄に名前を入れて、最後に Save を押す
  • 後で設定を変更するときは、まずその設定をクリックして Load(=設定を開く)、編集したら Save(=保存)

先に Default Settings を整えておくと、新しいSSH設定を作るときの手間が減る

以下、自分の基本設定メモ

  • Window
    ウィンドウサイズ変更
    デフォルトのSSHウィンドウが小さすぎるので Columns Rows を適切に
  • Window ->> Selection
    Ctrl Shift C/VClipboard で使えるように(ターミナルと一致)
  • 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_rsa id_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_config sshd設定
      • PubkeyAuthentication yes 公開鍵認証をオン
      • PasswordAuthentication no (optional) 必要ならパスワード認証をオフ
    • systemctl restart sshd sshdを再起動
  • 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 2048ed25519 鍵が作れる

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

Terminal window
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --permanent --add-port=2244/tcp
sudo firewall-cmd --reload