SSH鍵を使用してサーバにログインする
ssh-keygen -t rsa -b 4096ssh-keygen -t ecdsa -b 521 -C [mail-address or username@hostsname]ssh-keygen -t ed25519 -C [mail-address or username@hostname]ssh-copy-id -i id_rsa.pub fuga@example.comssh-copy-id -i id_rsa.pub -o IdentityFile=~/.ssh/id_rsa fuga@example.com- 受け取った公開鍵のファイル名を
authorized_keys変更して.ssh下に保存します。 authorized_keysのパーミッションを、0600に変更します。
1. 鍵ペアの作成
とりあえず作るって場合はRSAで、
より強い鍵が必要な場合は、ECDSAやED25519を使って、
-fオプションでファイル名を指定できるので、適宜変更する。
実行すると、秘密鍵(id_rsa等)と公開鍵(id_rsa.pub等)が作成されます。
秘密鍵・公開鍵の作成方法は、https://bioscryptome.t-ohashi.info/linux/ssh-keygen/も参照してください。
2. 公開鍵の登録
ホスト側で作成した公開鍵を、サーバ側に登録します。~/.ssh/authorized_keysというファイルを作り、そこに追記していきます。
方法1. ssh-copy-idを使う
ssh-copy-idを使うと自動でauthorized_keysに追記してくれます。
パスワード認証で登録
秘密鍵で登録
方法2. scpで頑張る
ホスト側
公開鍵をscpを使ってリモート側に転送します。
$ scp ~/.ssh/id_rsa fuga@example.com
$ ssh fuga@exapmle.com
リモート側
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
方法3. マニュアルで頑張る
パスワード認証や、ssh-copy-idが使えない場合は、authorized_keysに何らかの方法でコピペします。
3. ssh-agentの設定
パスフレーズを設定した場合は、省略できるようにする。
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
4. configの設定
サーバ接続時に、作成した秘密鍵を使用するよう~/.ssh/configに情報を登録しておきます。
Host hoge
HostName exapmle.com
IdentityFile ~/.ssh/id_rsa
User fuga
5. 接続確認
ホスト名だけでログインできる。
$ ssh hoge