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 user@x.x.x.x

将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 chenbo@ServerA:~/

同步/svr/data文件夹到ServerA的/svr目录下,--delete是删除目标文件夹中源文件夹里没有的文件,总之让目标文件夹和源文件夹完全相同。

rsync -azv --progress -e ssh --delete /svr/data chenbo@ServerA:/svr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值