SSHやSFTPをパスワードなしで接続する(秘密鍵 / 公開鍵 作成方法)

ssh やSFTPをパスワードなしで接続するには次のようにします。

● 1. 【鍵の作成】接続元マシンで以下のように入力する(RSA 4096bit)

鍵ファイル名を指定して「公開鍵」「非公開鍵」2つの鍵ファイルを作成します。

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa__mysite

(何か入力を促されますが、そのままenterを2回押します) これで 
公開鍵「id_rsa__mysite.pub」 と 
非公開鍵「id_rsa__mysite」 
が生成されます。

RSAより高速で強度の高い(Ed25519)で鍵生成する場合は

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519__mysite

で生成します。生成ファイル名(「id_rsa__mysite」→「id_ed25519__mysite」)に変えているので、以下の文章のファイル名のところは読み替えてください。

● 2. 【RSA鍵の強度を調べる】

接続元マシンで以下のように入力します

ssh-keygen -l -f ~/.ssh/id_rsa__mysite
# または次のコマンドでもok
ssh-keygen -l -f ~/.ssh/id_rsa__mysite.pub

表示される先頭の数字がバイト数です。2048以上になっていることを確認します。

● 3. ( 接続元マシンで)【作成したRSA公開鍵をコピーする】

cat ~/.ssh/id_rsa__mysite.pub
(画面上にキーを表示してクリップボードにコピーする)

● 4. 接続先マシンにて公開鍵を設定する(転送コマンドを使用する場合)

ssh-copy-id -i ~/.ssh/id_rsa__mysite.pub [リモートユーザー]@[リモートサーバーのホスト名]

● 4. 接続先マシンにて公開鍵を設定する(手動でする場合。あらかじめsshで接続しておく)

cd
mkdir .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
vi authorized_keys
(ここでviから先ほどクリップボードにコピーした鍵をペーストする。)

viの保存コマンド esc:wqEnter で保存する。

なお、サーバによってはファイル名「authorized_keys2」というファイルが存在することがあります。(古いサーバです。)
気にせず「authorized_keys」に追記 します。
どちらのファイルもない場合は「authorized_keys」でOKです。

● 5. 設定完了。(接続元マシンから)秘密鍵を指定した接続を確認する

ssh  -i  ~/.ssh/id_rsa__mysite  user@xxx.yyy.zzz

なお、SSH接続の不具合を調査するときはこのように -v をつけて実行します

ssh  -v -i  ~/.ssh/id_rsa__mysite  user@xxx.yyy.zzz

関連エントリー

No.250
09/21 13:49

edit

ssh