我目前正在尝试配置使用基于密钥的身份验证而不是密码登录的ssh服务器。我需要禁用以下内容:AllowTCPForwarding
、、、、和。GatewayPorts
PermitRootLogin
HostbasedAuthentication
PermitEmptyPasswords
X11Forwarding
我已经按照很多教程操作,但是,当我尝试登录 SSH 服务器时,却出现了
权限被拒绝(公钥)。
我已经使用创建了密钥ssh-keygen -t rsa -b 4096
并将其复制到~/.ssh/authorized_keys
SSH 服务器上,并启用PubKeyAuthentication
并重新启动了服务器。
任何帮助将不胜感激!
答案1
您需要在客户端指定使用哪个密钥。
您可以使用ssh -i PATH_TO_PRIVATE_KEY
或通过配置文件来执行此操作,后者更为方便。
以下是我的一段~/.ssh/config
适用于 github 的摘录:
Host github github.com
HostName github.com
User git
PasswordAuthentication no
IdentityFile ~/.ssh/github.shaggyrogers.rsa
请注意,紧随其后的单词Host
是配置块适用的主机名(在命令行中输入)。在这种情况下,我只需输入ssh github
或即可ssh github.com
。man ssh_config
有关更多信息,请参阅。