SSH远程免密设置

linux经常有通过ssh远程控制其他服务器、远程同步文件等操作,如果不进行SSH免密设置,每次都要输入密码,不太方便,我们来看看怎么进行ssh免密设置,避免每次都要输入密码。

首先在本地机器生成公私秘钥,执行如下命令,一路回车即可

ssh-keygen -t rsa

将在~/.ssh文件夹下生成id_rsa(私钥)和id_rsa.pub(公钥)。

然后将公钥上传远程机器,并生效(写入远程的.ssh/authorized_keys),执行如下一条命令即可:

ssh-copy-id -i ~/.ssh/id_rsa.pub -p port [email protected]

将user替换为你在远程的用户名,如果端口是默认的22,可以不写。执行这条命令需要输入远程密码,执行完成后,公钥应该成功写入了远程user的home/.ssh/authorized_keys中,以后远程该机器就不需要输入密码了。试试远程该机器:

ssh -p port x.x.x.x

不出意外你应该以user身份成功登录了。如果嫌每次输入port和ip地址麻烦,可以在.ssh/config中做个配置,给远程机器起一个别名,打开~/.ssh/config,输入如下内容:

Host ServerA
HostName x.x.x.x
    User user_name
    Port 12345
    ForwardX11 yes

替换掉你的用户名、IP和端口,配置完成后,远程该机器输入如下命令就可以了:

ssh ServerA

以后通过ssh与远程机器同步文件都不需要密码了,比如rsync、scp、sftp都可免密执行。如拷贝本机home目录下的TestDir文件夹及其所有内容到远程机器的home目录,执行如下命令:

scp -r ~/TestDir ServerA:~/



猜你喜欢

转载自blog.csdn.net/bodybo/article/details/80545991