scp 没有密码就无法工作

scp 没有密码就无法工作

我创建了密钥,这样我就可以传输文件和运行命令,而无需输入密码。我使用本指南来做到这一点:

http://says-story.blogspot.nl/2008/01/using-ssh-scp-sftp-without-password.html

将本地环境中 id_dsa.pub 键的 chmod 更改为 600。

当我现在运行这个命令时

scp -i /home/.ssh/id_dsa.pub /prod/tool/CODELIBRARY.txt user@remoteenv:/toload

它不断要求输入密码。当我按回车键时,它会要求输入密码。

但是当我运行此命令时,它无需密码或密码短语即可工作:

ssh -v -l username remoteenv

答案1

scp -i /home/.ssh/id_dsa.pub 

该命令有两处错误。一是这种情况/home/.ssh不太可能存在。 SSH 密钥通常位于您的主目录中调用的目录中.ssh,并且您的主目录通常类似于/home/bob,因此该.ssh目录是/home/bob/.ssh

另一个更概念化的问题是scp(orsshsftp) 需要给出私人的密钥文件,但您传递了公钥文件。该密钥用于在服务器上对客户端进行身份验证。客户端需要证明它是谁,要做到这一点,它表明它知道一个其他人不知道的秘密:私钥。服务器知道客户端应该是谁,它知道公钥。

scpssh在您未指定密钥文件时有效,因为它默认查找正确的文件。

答案2

问题...当您运行此命令时:

ssh-keygen -t dsa

它会提示您输入关键词,因此:

[admin@test ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

您是否将密码留空?或者您在那里输入了密码吗?在这种情况下,您需要将密码留空,以避免每次都被要求输入密码。

答案3

我刚刚发现的另一件事是,我必须编辑文件.ssh/authorized_keys并使主机名完全合格。否则我无法在 scp/ssh 命令中使用完全限定名称。

相关内容