Lan*_*nes 533 password ssh key-authentication
如果我使用来自例如 Ubuntu 11.04 的公钥身份验证,我如何将 ssh 客户端设置为仅对服务器使用密码身份验证?(只是因为在服务器上测试密码而需要,我默认使用密钥登录)
我找到了一个方法:
mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup
Run Code Online (Sandbox Code Playgroud)
现在我被提示输入密码,但有什么官方方法吗?
小智 822
我最近也需要这个,并想出了这个:
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com
Run Code Online (Sandbox Code Playgroud)
您需要确保客户端未配置为禁止密码身份验证。
Hal*_*gür 209
为此,我发现了一个快捷方式:
ssh user:@example.com
Run Code Online (Sandbox Code Playgroud)
注意冒号 ( :) 和它后面的空密码。
Eig*_*ony 46
除了 scoopr 发布的方法,您还可以在 ssh 客户端配置文件中设置每个主机选项。
在您的.ssh目录中,创建一个名为config(如果它不存在)的文件并将权限设置为600,然后您可以创建以开头的部分
host <some hostname or pattern>
Run Code Online (Sandbox Code Playgroud)
然后在此之后设置每个主机选项,例如,
host bob.specific.foo
user fred
host *.home.example
user billy
port 9191
Run Code Online (Sandbox Code Playgroud)
所以你可以有
host server.to.test
PubkeyAuthentication no
Run Code Online (Sandbox Code Playgroud)
在那个文件中,然后简单地
ssh server.to.test
Run Code Online (Sandbox Code Playgroud)
并且该选项将被选中。
小智 16
我最近需要这个,但上面的选项都不起作用,ssh -v表明通过-o开关传递的命令行选项被我的~/.ssh/config文件中指定的值覆盖。
有效的是这样的:
ssh -F /dev/null <username>@<host>
Run Code Online (Sandbox Code Playgroud)
从ssh手册页:
-F configfile
Specifies an alternative per-user configuration file. If a
configuration file is given on the command line, the system-wide
configuration file (/etc/ssh/ssh_config) will be ignored. The default
for the per-user configuration file is ~/.ssh/config.
Run Code Online (Sandbox Code Playgroud)
归功于此答案:如何让 ssh 忽略 .ssh/config?
小智 9
上面的评论中提到了这一点,但我认为它应该成为自己的答案。
对于Permission denied (publickey)尽管有其他解决方案但仍收到错误的人来说,问题可能是服务器设置为不接受密码。要更改此设置,您需要进入服务器(许多服务允许您通过管理控制台上的虚拟控制台使用密码进行访问)并且:
nano /etc/ssh/sshd_config
找到PasswordAuthentication no并将其更改为yes,然后取消注释。
运行sudo service sshd restart(或者sudo systemctl restart sshd如果使用 systemd 服务)
现在尝试使用上述方法之一从远程服务器登录,例如ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com
我尝试了其中的一些答案,但ssh -v一直显示我的公钥被从我的主目录中拉出。但是,指定一个虚假的身份文件对我有用:
ssh -i /dev/null host
Run Code Online (Sandbox Code Playgroud)
我必须在APC永久(要解决的破SSH服务器做到这一点机架式PDU -住宿远远离这些东西,如果你对安全性-所以我最终把选择到我的配置文件:
Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null
Run Code Online (Sandbox Code Playgroud)