[macOS General] SSH: 鍵作成とconfigによる複数ホストの管理
いつも忘れてしまうssh接続設定のメモ。
[markdown]
## 鍵の作成
RSA認証鍵を名前を指定して作成します。
“`prettyprinted
$ ssh-keygen -t rsa -f sakura_rsa
“`
この例では sakura_rsa と sakura_rsa.pub の2つができます。
## ssh接続の設定
ssh接続の設定手順は「[さくらのレンタルサーバでSSH公開鍵認証 | EzXNetwork][1]」を参考にさせて頂きました。
[1]: http://ezxnet.com/server/entry2077/
公開鍵をサーバにscpする。
“`prettyprinted
$ scp sakura_rsa.pub username@username.sakura.ne.jp:/home/username/.ssh/authorized_keys
username@username.sakura.ne.jp’s password:
“`
“`prettyprinted
$ ssh username@username.sakura.ne.jp
username@username.sakura.ne.jp’s password:パスワードを入力
Welcome to FreeBSD!
$ chmod 700 /home/username/.ssh
$ ls -al /home/username/
drwx—— 2 username users 512 May 30 17:16 .ssh
$ chmod 400 authorized_keys
$ ls -al
-r——– 1 username users 415 May 30 18:06 authorized_keys
$ exit
“`
以上でssh接続の設定は完了。
## ~/.ssh/config を設定する
`~/.ssh/config` で鍵の管理ができるとのこと。
> ssh で鍵やユーザ名を複数のホストで使い分けないといけない場合、それら設定を覚えておくのは面倒です。
> それらホスト毎の設定は ~/.ssh/config で簡単に管理することができます。
> (中略)
> 鍵、ユーザ名、ssh バージョンなどを使い分けなければならない場合にとても便利です。
> また、svn, git, scp, sftp などでの利用でも反映されるため、オプションを覚える必要がなくなります。
>
> [~/.ssh/config で簡単に複数ホストへのSSH接続を管理する – すぱぶろ][2]
[2]: http://superbrothers.hatenablog.com/entry/20090730/1248971671
例えば上記のsakuraの設定であれば、config内にこのような内容を書けば良さそうです。
“`prettyprinted
Host username.sakura.ne.jp
UseKeychain yes
AddKeysToAgent yes
ForwardAgent yes
PreferredAuthentications publickey
Hostname username.sakura.ne.jp
User username
Port 22
IdentityFile ~/.ssh/sakura_rsa
“`
ssh接続は ~/.ssh/config の Host で指定した名前を使用します。
“`prettyprinted
$ ssh username.sakura.ne.jp
“`
## 補遺
> * [SSH認証キーをBitbucket/GitHubに設定しよう! [Mac簡単手順] – 酒と泪とRubyとRailsと](http://morizyun.github.io/blog/ssh-key-bitbucket-github/)
ssh config
> * [頻出SSHメモ ~/.ssh/configと認証鍵まわりのこと ::ハブろぐ](http://havelog.ayumusato.com/develop/server/e258-ssh_config_memo.html)
> * [sshを使いこなすための7つの設定 – 射撃しつつ前転](http://d.hatena.ne.jp/tkng/20110606/1307323091)
ssh agent
> * [ITmedia エンタープライズ : Linux Tips「ssh-agentでパスフレーズをキャッシュさせたい~ノンパスワードの実現~」](http://www.itmedia.co.jp/help/tips/linux/l0403.html)
> * [ssh-agent でパスフレーズの入力を省く – WebOS Goodies](http://webos-goodies.jp/archives/50672669.html)
AddKeysToAgent, UseKeychain
> * [[macOS] macOS Sierra にしたら ssh の度にパスフレーズを求められる問題の解決方法 | deadwood](https://www.d-wood.com/blog/2016/12/21_8704.html)
[/markdown]