Mac

[Mac] ターミナルで ssh 接続(公開鍵認証)をする

ターミナルで ssh(Secure Shell)接続して、サーバーにリモート接続する方法を紹介します。ssh 接続には、公開鍵認証を利用します。リモートにパスワード認証で接続する方法は、こちらの記事を参考にしてください。

公開鍵と秘密鍵を作る

ローカルでの作業です。ユーザフォルダの下にある .ssh フォルダで、公開鍵と秘密鍵を作成します。パスフレーズを設定しますが、ここは何も入力せずに Enter で OK です。

$ cd ~/.ssh
$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

生成される id_rsa が秘密鍵で、id_rsa.pub が公開鍵です。

$ls
id_rsa		id_rsa.pub	known_hosts

公開鍵をリモートに置く

上記で作成した公開鍵(id_rsa.pub)をサーバーに送ります。サーバーに送るには、scp コマンドを利用します。

$ scp id_rsa.pub ユーザ名@ホスト名:~
ユーザ名@ホスト名's password: 
id_rsa.pub                                    100%  408     0.4KB/s   00:00

リモートに接続します。

$ ssh ユーザ名@ホスト名
ユーザ名@ホスト名's password:

.ssh ファイルに id_rsa.pub を移動します。そして、authorized_keys という名前で保存(追記)し、パーミッション 600 を設定し、authorized_keys を .ssh 以下に置きます。

$ mv ~/id_rsa.pub ~/.ssh
$ cat ~/.ssh/id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys 
$ mv ~/authorized_keys  ~/.ssh/authorized_keys

以上で、公開鍵認証による ssh 接続ができるようになります。

公開鍵認証で ssh 接続

以下のコマンドを入力するとパスワードの入力なしに、リモート接続できます。

$ ssh ホスト名

参考:sshで公開鍵認証(パスフレーズ無し)のメモ - toyosystem