macOSからRocky LinuxへパスワードなしでSSH接続する方法
この記事では、SSHでパスワードなしでログインする方法を紹介します。
手順
鍵の生成(必要に応じて)
macOSで、id_rsa_rockyという名前の鍵がまだない場合は生成します。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_rocky
- -t rsa:RSA鍵を指定
- -b 4096:鍵の長さを指定(4096ビット)
- -f ~/.ssh/id_rsa_rocky:鍵のファイル名を指定
パスフレーズを求められた場合は、空のままEnterを押すと、パスワードなしでログインできます。
公開鍵をRocky Linuxに転送
次に、公開鍵をRocky Linuxにコピーします。
ssh-copy-id -i ~/.ssh/id_rsa_rocky.pub user@rocky-linux-host
- ~/.ssh/id_rsa_rocky.pub:生成した公開鍵
- user@rocky-linux-host:Rocky Linuxのユーザー名とホスト名またはIPアドレス
Rocky Linux側での設定確認
公開鍵が正しく配置されていることを確認します。
ログイン後、~/.ssh/authorized_keysに公開鍵が追加されているか確認します。
cat ~/.ssh/authorized_keys
SSHディレクトリとファイルのパーミッションを確認します。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Rocky LinuxのSSH設定ファイル/etc/ssh/sshd_configに以下の設定が含まれているか確認します。
sudo vi /etc/ssh/sshd_config
以下の行を探して確認または修正します:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitRootLogin prohibit-password
ChallengeResponseAuthentication no
変更した場合はSSHサービスを再起動します:
sudo systemctl restart sshd
macOSでSSH設定を更新
~/.ssh/configに設定を追加して、指定した鍵を使うようにします。vi ~/.ssh/config
以下の内容を追加します:
Host rocky-linux-host
HostName rocky-linux-host
User user
IdentityFile ~/.ssh/id_rsa_rocky
- Host:任意のホスト名(短縮名として使えます)
- HostName:Rocky Linuxのホスト名またはIPアドレス
- User:ログインに使用するユーザー名
- IdentityFile:鍵ファイルのパス
保存後、ファイルのパーミッションを確認します。
chmod 600 ~/.ssh/config
接続テスト
以下のコマンドで接続をテストします。
ssh rocky-linux-host
問題がなければパスワードなしでログインできます。
SSH設定を変更してディレクトリ権限の制限を緩和する
通常、サーバー側の /home/rocky はディレクトリ権限を700にする必要があります。そうしないと、パスワードを要求されてしまいます。何かの理由でホームディレクトリを700にできない場合、SSHが公開鍵認証を許可するように設定を調整することが可能です。以下の手順で対応してください。
解決方法
SSHの設定で、ディレクトリ権限の厳密なチェックを無効化できます。ただし、これはセキュリティリスクを伴うため注意が必要です。
SSH設定ファイルを編集します。
sudo vi /etc/ssh/sshd_config
次の設定を追加または変更します:
StrictModes no
- この設定を有効にすると、authorized_keysファイルの権限が厳密にはチェックされなくなります。
SSHサービスを再起動します。
sudo systemctl restart sshd