暂时禁用客户端的ssh公钥authentication

有没有办法暂时禁用公钥authentication时ssh'ing,并使用密码authentication呢?

我目前想访问远程服务器,但我使用另一台笔记本电脑,不是我的。

浏览该链接 ,我发现命令ssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no host1.example.org无处不在。 是的,这对我不起作用。 我正在使用:OpenSSH_5.9p1 Debian-5ubuntu1,OpenSSL 1.0.1 2012年3月14日

编辑:我也试图键入ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no但仍然有“权限被拒绝(公钥)”。

那么,在远程服务器中是否有一个特定的configuration要执行? 或者,如果这个命令能按预期工作的话?

非常感谢您的build议。

这听起来像在服务器端的configuration问题。

如果服务器同时允许公钥和密码validation,那么即使您尝试在客户端上没有私钥文件的情况下进行连接,它也会提示您input密码。

如果您收到错误消息"Permission denied (publickey)"那么听起来您的服务器不支持密码身份validation。

没有看到/ etc / sshd_config文件,很难知道,但我的猜测是,你需要确保下面的行存在:

 PasswordAuthentication yes 

重新启动ssh服务器,并且当您从客户端连接时,如果没有私钥存在,或者私钥与服务器上的公钥不匹配,系统会提示您input密码。

当然,更安全的替代方法是将私钥复制到您正在使用的笔记本电脑上,或者实际上生成一个新的私钥用于该笔记本电脑,并将.ssh/authorized_keys添加到.ssh/authorized_keys

只需要创build一个空白的ID文件。

 touch $HOME/.ssh/blank 

如果你离开权限640或644,那么ssh会抱怨权限不够安全,不能使用它。 如果你把它改为600,那么它会提示input密码3次,并失败,因为没有密码。 所以只要把它放在640或644。

那么当你ssh使用这个命令。

 ssh -i $HOME/.ssh/blank servername-or-ip 

您可以使用.ssh / config并设置一个主机条目不使用密钥,但它不是临时的,或者您可以为服务器和服务器nokey创build别名,但它变得很长,很难维护。