linux服务器忘记ssh密码_Linux下服务器之间ssh无密码登录的配置方法

Linux下服务器之间ssh无密码登录的配置方法

/* Layout-provided Styles */

h1.title {

font-size: x-large;

margin-bottom: 1ex;

text-align: center;

}

div.author {

font-size: large;

margin-top: 1.3ex;

margin-bottom: 0.7ex;

text-align: center;

}

div.standard {

margin-bottom: 2ex;

}

ol.enumerate {

margin-top: 0.7ex;

margin-bottom: 0.7ex;

margin-left: 3ex;

text-align: left;

}

div.plain_layout {

text-align: left;

}

ul.itemize {

margin-top: 0.7ex;

margin-bottom: 0.7ex;

margin-left: 3ex;

text-align: left;

}

div.Shaded {

background-color: gray;

padding: 0.5ex;

}

宿宝臣

ssh无密码登录是一个Linux下面很常见的管理任务,比如要自动远程执行服务器的某个命令时,或者自动scp/rsync远程服务器的文件时等。假设如下图所示:

假设我们要配置master主机的用户tom无密码登录slave主机的用户cat,配置步骤如下:

以tom身份登录master主机,执行如下命令(如果/home/tom/.ssh目录已经存在则跳过此步骤):

$ ssh-keygen

# 一路回车即可

以cat身份登录slave主机,执行如下命令(如果/home/tom/.ssh目录已经存在则跳过此步骤):

$ sudo apt-get install openssh-server # 如果已安装可跳过

$ ssh-keygen

# 一路回车即可

在master主机执行:

$ cd /home/tom/.ssh

$ scp id_rsa.pub cat@slave:/home/cat/.ssh/id_rsa.pub.tom

# 输入cat在slave的密码即可将id_rsa.pub文件复制到slave主机。

在slave主机以cat身份运行:

$ cd ~/.ssh

$ cat id_rsa.pub.tom >> authorized_keys

$ chmod 400 authorized_keys

这样就完成了从master主机无密码登录slave主机的所有步骤,可以在master主机以tom身份测试一下: ssh slave -lcat,应该不需要输入密码就能够登录slave主机了。如果要实现从slave主机到master主机的无密码登录,把上面的过程反过来做一遍就可以了。

如果需要在创建ssh key的时候无需人工干预(适合写到脚本中执行),可以用如下的命令:

$ ssh-keygen -q -N “” -f ~/.ssh/id_rsa -y

几个参数的意义如下:

-q:静默方式运行,即在屏幕不输出执行结果

-N:登录密码,因为是采用无密码登录,这里为空

-f:ssh key写入的文件名

-y:如果已经存在.ssh目录则自动覆盖,并且在执行后打印出public key(没有找到只自动覆盖的选项,这选项凑合用吧)。如果是在脚本中创建ssh key,则可以首先探测~/.ssh是否存在,就无需-y选项了。

远程主机的cat用户不一定是登录用户。为了安全起见,远程主机的cat用户往往设置为非登录用户,即slave主机的/etc/passwd文件中,将cat用户的登录shell修改为/bin/false。

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值