如果我理解你的问题,你能设置一下吗ssh-keys
允许user A and user B登录到两台不同的计算机甲、乙不提供密码?当然可以,但是user A无法登录user B通过 ssh 的帐户不超过user A可以登录user B本地计算机上的帐户。 (目录所有权不同$HOME
等等..就是这样su
是为了)。
要创建无密码登录,让我们采取user A and 电脑A谁有帐户计算机B并愿意ssh hostnameB
并在不提供密码的情况下登录。
(1)用户A创建了一个公钥 and 私钥 on 电脑A with ssh-keygen -t ecdsa
(为ecdsa
加密密钥。dsa
由于当前 openssh 的不安全性,不再支持密钥)。什么时候ssh-keygen
运行它将创建两个文件(默认情况下在$HOME/.ssh
)。关键是id_edcsa
(私钥)和id_ecdsa.pub
(公钥)。
(2) for user A登录到计算机B如果没有密码,他必须先转移他的公钥 to 计算机B并将其添加到他的$HOME/.ssh/authorized_keys
文件于计算机B。例如从电脑A:
$ ssh-keygen -t ecdsa # generate key-pair
$ cd ~/.ssh # verify private and public keys created
$ rsync -a id_ecdsa.pub hostnameB:~/.ssh/id_ecdsa.pub.hostA
password: enter pw
$ ssh hostnameB
password: enter pw
$ cd ~/.ssh
$ cat id_dsa.pub.hostA >> authorized_keys # permissions must be 0600
$ exit # exit hostnameB
note:上面你可以rsync
public_key 目录到计算机B ~/.ssh/authorized_keys
如果您确定该文件不存在,为了节省时间,请完全跳过最后一步,将传输的文件复制到上面的文件中。例如
$ rsync -a id_ecdsa.pub hostnameB:~/.ssh/authorized_keys
(您可能需要检查权限计算机B然后)
现在进行测试,user A应该不再需要密码来长入计算机B. From 电脑A:
$ ssh hostnameB
$ welcome to hostnameB>
现在,您只需重复为每个用户创建密钥对并传输密钥的过程即可公钥到您想要无需密码访问的主机并添加公钥 to the 授权密钥文件。 (注:你可以直接复制相同的私钥给每个人的~/.ssh
目录并添加相同的公钥给每个人的~/.ssh/authorized_keys
文件,但这违背了拥有单独密钥的目的)。note: each authorized_keys
文件必须由拥有该文件的用户拥有$HOME/.ssh
目录和文件权限必须是0600
(-rw-------
) or sshd
将不允许连接。
这就是全部内容(您可以签入/etc/ssh/sshd_config
以确保姓名authorized_keys
文件尚未更改为其他内容。
尝试一下,如果您有疑问请告诉我。我已经这样做了数百次——只要你遵守这些规则就没有问题。