我的同事给我发送了一个带有文件的“.ssh”目录。 他说我可以把这个目录放在我的用户目录中,然后连接到ssh而不需要密码(ssh root @ ip)。
我把这个目录放在我的主目录下,然后尝试了ssh root @ ip,但是没有成功。
我错过了什么吗?
这里有两件事
1)你的同事给你发了一个.ssh目录(可怕的想法顺便说一句,但多数民众赞成在另一个问题..)里面有一个文件称为authorized_keys持有一个或多个“SSH公钥”。 他正在谈论的“没有密码的连接”发生在您连接并提供私钥并且系统识别出.ssh / authorized_keys中的匹配公钥时。 如果你没有说ssh私钥那么这个文件夹实质上是无用的。 这个键需要在客户端而不是服务器端。 看看.ssh文件夹里面,是否有一个id_rsa文件? 如果这样的话,将其复制到您的客户端,并将其加载到Pagent或Putty内部。
2)你说你把这个放在你的主目录,让/ home / Moon说。 现在,您尝试以root @ ip身份login。
SSH会在/root/.ssh/里面查看not /home/moon/.ssh/文件,因为你试图以root身份login而不是Moon。 根据您的发行版,您可以login到您自己的帐户,然后sudo或sulogin。 为root设置密码短语是各种可怕的。
最后一个警告的话..你的同事给你他的.ssh目录包含一个authorized_keys文件到一些未知的私钥。 除非你真的真的相信你的同事,否则这是一个可怕的想法。 如果你的home文件夹有一个.ssh目录,并且有人在authorized_keys文件中删除了公钥,那么他们可以login你的用户而不提供你的系统密码。 从本质上讲,你的同事可以login你的名字,做你想要的名字,没有人可以certificate。
如果你想自己做这件事,并做好以下操作。
在命令中以普通用户typeslogin
ssh-keygen -t rsa
按照提示,select默认的一切(我build议你input您的密钥密码)。
将您的公钥复制到您的授权密钥文件中,删除旧内容。
cat〜/ .ssh / id_rsa.pub>〜/ .ssh / authorized_keys
将〜/ .ssh / id_rsa文件复制到客户端计算机,使用Pagent,Putty,ssh -i或其他一些密钥pipe理器加载/打开id_rsa。 现在SSH到yourusername @ ip,你不需要提示。
.ssh目录应该(如果你的同事做得正确)包含一个你需要添加到授权密钥文件的公钥。 打开一个terminal并input
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(这可能不是正确的命令,你发送的目录应该有一个.pub文件,而不是所谓的猫)
你也应该build议他们发送整个SSH目录是一个非常糟糕的主意,因为你现在有一个私钥。 此外,任何以前授权的密钥或已知的主机已被覆盖,他们应该刚刚发送给你的id_rsa.pub文件。
或者,您的sshd可能未configuration为允许基于密钥的身份validation,请参阅文档以获取有关如何执行此操作的具体说明。
另一种可能性:根据你如何提取.ssh目录,你可能不拥有你创build的文件(这是大多数版本的ssh连接的先决条件)。 试试chown -R $USER. ~/.ssh chown -R $USER. ~/.ssh和chmod -R g-rwx,o-rwx ~/.ssh 。