とりあえずの記録

はじめは同学科の人向けのナレッジまとめでした

【Macer向け】.ssh/configでSSH接続をかんたんに.

普段,terminal.appでSSH接続するときに

 ssh [ユーザ名]@[サーバ] -p [ポート]

とタイプして,都度パスワードを入力している人へ.

 

簡潔に設定できるように記述しているため,一部適切とは言えないものも含みます.

 

以下の操作は,サーバではなく,自分のMac行います.

キーペアの生成

パスワードの代わりとなる,秘密鍵と公開鍵のペアを生成します.

ssh-keygen -t ecdsa -b 521 -C "自分のPCであることが分かる名前"

例えば,こんな感じ.

ssh-keygen -t ecdsa -b 521 -C "masakiMBP"

 

実行すると,

Enter file in which to save the key (/Users/[ユーザ名]/.ssh/id_ecdsa):

と聞かれますが,何も入力せずにEnter

(入力すると,ファイル名を変更できます)

 

続いて,

Enter passphrase (empty for no passphrase):

と聞かれますが,何も入力せずにEnter

(入力すると,キーペアを使うと


きにパスフレーズの入力が求められるようになります.セキュリティ上は入力しておくべきですが,学科の演習サーバなどであれば(特権を持っていないアカウントであれば)設定しないことも少なくありません.)

 

続いて,

Enter same passphrase again:

と聞かれますが,何も入力せずにEnter

(上と同じものの入力を求められています.)

 

以下のような図形が出力されれば,問題なくキーペアが生成できています.

f:id:tamasan238:20210208114453p:plain

サンプル

公開鍵をサーバに転送

生成した公開鍵と秘密鍵のうち,公開鍵を接続したいサーバに予め置いておく必要があります.

 

ですので,手元のMacからサーバへ以下のコマンドで転送します.

ssh-copy-id [ユーザ名]@[サーバ] -p [ポート]

いつもsshするときに入力していたものの"ssh"を"ssh-copy-id"にするだけですね.

 

パスワードを求められるので,普段通り入力してください.

 

いつものようにサーバに接続できたら,完了です.
これで,パスワードを入力せずとも接続できるようになりました.

 

接続先をconfigファイルに保存

毎回ユーザ名とサーバのアドレス,ポート番号を入力するのは面倒ですので,この機会に

ssh hi

とタイプするだけで接続できるようにします.

 

再びMacのTerminalを開き,(もしまだサーバに繋がっていたら,exitと打って接続を切ってください.)

vi ~/.ssh/config

で設定ファイルを編集します.

 

以下の内容を入力してください.

Host 自分で決める短い名前
    HostName サーバのアドレス
    Port ポート番号
    User ユーザ名
    IdentityFile ~/.ssh/id_ecdsa

 

例えば,

Host hi
    HostName test.example.com
    Port 2229
    User df20test
    IdentityFile ~/.ssh/id_ecdsa

こういう感じ.

 

入力を終えたら,保存してください.

 

その後は,

chmod 600 ~/.ssh/config

を実行すれば,あとはいつでも

ssh 自分で決めた短い名前

で接続できるようになります.

 

複数のサーバに接続するには

また別のサーバに接続したいとき,改めてもう一度キーペアを生成する必要はありません.

今回生成したキーペアをそのまま使います.

 

そのため,

ssh-copy-id [ユーザ名]@[サーバ] -p [ポート]

でまた別のサーバに公開鍵を転送してあげて,
~/.ssh/configを編集すればOKです.

Host hi
    HostName test.example.com
    Port 2229
    User df20test
    IdentityFile ~/.ssh/id_ecdsa

Host sp
    HostName sample.example.com
    Port 2229
    User df20test
    IdentityFile ~/.ssh/id_ecdsa

こんな感じで,複数記載することができます.