如何设置两个不同账户之间的无密码验证
我们可以在两台机器的两种不同用途之间设置密码减少验证。如何设置两个不同账户之间的无密码验证
例如:计算机A有用户A,计算机B有用户B. 我们可以设置用户A从计算机A使用其用户帐户(A)登录到计算机B的密码ssh。
谢谢!
如果我理解你的问题,你可以设置ssh-keys
允许用户A和用户B登录到两个不同的计算机一个&乙无需提供密码?当然,但用户A无法登录到用户B“通过SSH账户的任何超过用户A可以登录到用户B的帐户在本地计算机上。 (目录所有权是不同的$HOME
等,这就是su
是)。
要创建一个密码登录少,让我们用户A和计算机中的谁拥有B计算机一个帐户,并想ssh hostnameB
和登录无需提供密码。
(1)用户A 计算机上创建一个PUBLIC_KEY和PRIVATE_KEY甲与ssh-keygen -t ecdsa
(对于ecdsa
加密密钥。dsa
密钥不再支持由于在当前的OpenSSH不安全)。当运行ssh-keygen
时,它将创建两个文件(默认为$HOME/.ssh
)。密钥是id_edcsa
(私钥)和id_ecdsa.pub
(公钥)。
(2)为用户A登录到B电脑没有密码,他必须首先他PUBLIC_KEY转移到B计算机并将其添加到他的$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
的PUBLIC_KEY目录到B电脑~/.ssh/authorized_keys
文件,如果你确定一个已经不存在,以节省时间,完全跳过最后一步将传输的文件复制到上面。例如
$ rsync -a id_ecdsa.pub hostnameB:~/.ssh/authorized_keys
(您可能需要对B计算机事后检查权限)
现在的测试,用户A不再需要密码才能长成了B计算机。从计算机中的:
$ ssh hostnameB
$ welcome to hostnameB>
现在你只是重复要访问W/OA密码生成密钥对每个用户和PUBLIC_KEY传输到主机的程序,并加入PUBLIC_KEY到authorized_keys文件。 (注意:您可以将相同的private_key复制到所有人的~/.ssh
目录中,并将相同的public_key复制到每个人的~/.ssh/authorized_keys
文件中,但这种做法违背了单独密钥的目的)。 说明:每个authorized_keys
文件必须属于拥有$HOME/.ssh
目录的用户,文件权限必须为0600
(-rw-------
)或sshd
将不允许连接。
这是所有有给它(你可以在/etc/ssh/sshd_config
检查,以确保authorized_keys
文件的名称尚未更改为别的东西。
给它一个尝试,让我知道,如果你有问题。我做它数百次 - 没有问题,只要你遵循这些规则
谢谢..这是非常明确和明确的... – UtpMahesh
很高兴它有帮助,这是相当SIM卡一旦你做了一两次,但第一次搞清楚可能会很困难(尤其是考虑到网络上出现很多写得不好的例子) –
谷歌搜索你的问题_如何设置两个不同帐户之间的无密码认证_我找到了一百个优秀的教程。为什么你更喜欢问和等待为答案**而不是做一个最小的研究**? –