我们可以在两台机器中的两种不同用途之间设置密码减去认证。
例如:计算机A有用户A,计算机B有用户B. 我们可以使用他的用户帐户(A)设置密码ssh,即用户A从计算机A登录到计算机B.
谢谢!
答案 0 :(得分:1)
如果我理解您的问题,您是否可以设置ssh-keys
以允许用户A 和用户B 登录到两台不同的计算机 A &安培; B 没有提供密码?当然,用户A 无法通过ssh登录用户B 的帐户用户A 可以登录用户B 在本地计算机上的帐户。 ($HOME
等的目录所有权不同。这就是su
的用途。
要创建密码少登录,让我们带用户A 和计算机A 谁拥有计算机B 上的帐户,并希望{ {1}}并在不提供密码的情况下登录。
(1)用户A使用ssh hostnameB
在计算机A 上创建 public_key 和 private_key (对于ssh-keygen -t ecdsa
加密密钥,由于当前openssh中的不安全性,不再支持ecdsa
个密钥。运行dsa
时,它将创建两个文件(默认情况下为ssh-keygen
)。密钥是$HOME/.ssh
(私钥)和id_edcsa
(公钥)。
(2) 用户A 在没有密码的情况下登录计算机B ,他必须首先转移他的 public_key 到计算机B 并将其添加到计算机B 上的id_ecdsa.pub
文件中。例如来自计算机A :
$HOME/.ssh/authorized_keys
注意:,如果您确定尚未存在计算机B $ 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
文件,则可以rsync
节省时间完全跳过最后一步将传输的文件复制到上面。 e.g。
~/.ssh/authorized_keys
(您可能必须事后检查计算机B 的权限)
现在进行测试,用户A 不再需要密码才能进入计算机B 。来自计算机A :
$ rsync -a id_ecdsa.pub hostnameB:~/.ssh/authorized_keys
现在,您只需重复为每个用户创建密钥对的过程,并将 public_key 传输到您要访问的主机,无需密码,并添加 public_key 到 authorized_keys 文件。 (注意:您可以将相同的 private_key 复制到每个人的$ ssh hostnameB
$ welcome to hostnameB>
目录,并将相同的 public_key 添加到每个人的~/.ssh
文件中,但是那种击败了拥有单独密钥的目的)。 注意:每个~/.ssh/authorized_keys
文件必须由拥有authorized_keys
目录的用户拥有,文件权限必须为$HOME/.ssh
(0600
)或{ {1}}不允许连接。
这就是它的全部内容(您可以登录-rw-------
以确保sshd
文件的名称未被更改为其他内容。
尝试一下,如果您有疑问,请告诉我。我完成了数百次 - 只要您遵守这些规则就没有问题。