我正在尝试设置 SSH 服务器。我将公钥放入 authorized_keys 文件中,确保权限正确等。
当我重启服务器(实际上只是 Ubuntu 12.04 桌面)并通过 ssh 连接到它时没有第一次登录服务器时,系统会要求我输入密码。但是,如果我登录到服务器,我就可以 ssh 而不需要输入密码。
auth.log
当我尚未登录实际服务器时,有以下几行:
mordor sshd[1605]: debug1: trying public key file /home/buck/.ssh/authorized_keys
mordor sshd[1605]: debug1: Could not open authorized keys '/home/buck/.ssh/authorized_keys': No such file or directory
答案1
如果您的主目录已加密,通常就会出现此问题。通常的解决方案是将密钥放在主目录以外的目录中,并将文件指向sshd_config
该目录。
例如:
- 将服务器上的 authorized_keys 文件从 移动
/home/buck/.ssh/authorized_keys
到类似/etc/ssh/keys/buck/authorized_keys
sudo chown -R buck:buck /etc/ssh/keys/buck/
设置此文件夹和密钥文件的权限chmod 700 /etc/ssh/keys/buck/
:chmod 600 /etc/ssh/keys/buck/authorized_keys
- 编辑
/etc/ssh/sshd_config
并将行更改AuthorizedKeysFile %h/.ssh/authorized_keys
为AuthorizedKeysFile /etc/ssh/keys/%u/authorized_keys
sudo service ssh restart
并且您无需先登录服务器即可登录。