rukurxの日記

自分の日々の作業や調べたことのメモ

MacでのSSH接続を管理する

サーバーにSSH接続するたびに毎回ホスト名や鍵情報を書くのが面倒なので、任意につけたホスト名だけでログインできるようにする。 ついでに踏み台サーバーを経由した多段SSHの設定もする。

通常のSSH

$ ssh root@example.com -i ~/.ssh/example.key -p 22

長い...

Host名を指定したSSH

  • .ssh/configファイルを作成して管理する
# .sshディレクトリがなければ作成して、パーミッションを変更する
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/config
  • 接続先のホスト情報をconfigファイルに記載する
$ vim ~/.ssh/config
# 接続先サーバー情報
Host example
 HostName example.com
 User root
 IdentityFile ~/.ssh/example.key
 Port 22
 TCPKeepAlive yes
 IdentitiesOnly yes

これでssh接続の際にHostに書いた名前を指定するだけでsshできる。

$ ssh example

踏み台サーバーを使った多段SSH

例としてAWSのEC2に踏み台サーバー(jump)経由でsshする。

$ vim ~/.ssh/config
Host jump
 Hostname 192.168.0.1
 User user_name
 IdentityFile ~/.ssh/id_rsa
Host web01
 Hostname 192.168.1.1
 port 22
 User ec2-user
 IdentityFile ~/.ssh/example.pem
 ProxyCommand ssh -CW %h:%p jump
  • 読み書き権限を付与する
$ chmod 600 .ssh/example.pem

※ 事前にexample.pemをローカルに落としてくる必要がある

参考

qiita.com

qiita.com