前職ではsshを本格的に使ったことがなく、せいぜい自宅でgithubに公開鍵をupした程度しか使ってなかったのでサーバー側、クライアント側を一通り動かして見ました。
サーバー側のsshの設定
設定ファイルは/etc/ssh/sshd_config
なのでコレを編集して様々な設定を適用可能
- 待受portを22から変更
- ポートフォワーディングを禁止する
- パスワード認証を無効化する(常に事前に登録した公開鍵を使う)
※todo:セキュリティ的にましな設定を調べてまとめる
変更を加えたらリスタートしましょう
sudo systemctl restart sshd.service
接続
パスワードを使って接続
クライアント側で実行するとuserのパスワードを聞かれ、ログインできます。
ssh <user name>@<server name(or ip)>
RSAで認証して接続
クライアント側でRSAの鍵を作る
$ ssh-keygen -t rsa
クライアント側のPCから鍵をサーバーに送る
ssh-copy-id -i <key file> <user name>@<server name( or ip)>
クライアント側から秘密鍵を指定して接続
ssh -i <private key file> <user name>@<server name(or ip)>
note複数の鍵がある場合、
~/.ssh/config
ファイルに設定を書いておくと実行するときにオプションの指定などをすべて省略できるので便利。(ssh <接続名>
だけで接続できる)
Host <接続名1> HOSTname <server name (or ip)> port <port no> User <user name> IdentityFile <key file> Host <接続名2> ...(以下略)
切断
exit
コマンドで切断可能