サイトロゴ

macOSからRocky LinuxへパスワードなしでSSH接続する方法

著者画像
Toshihiko Arai

はじめに

この記事では、SSHでパスワードなしでログインする方法を紹介します。

macOSからRocky Linuxにパスワードなしでログインするには、SSH公開鍵認証を設定します。この場合、秘密鍵の名前はid_rsa_rockyとします。


手順

鍵の生成(必要に応じて)

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

関連記事