[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]