linux免密码登录

Linux免密码登录

(抱歉,忘了从哪儿转载的,原创的作者看到可以私信我增加链接)

Linux主机之间一般都用ssh登录,用scp拷贝,但有的时候用脚本拷贝文件时,会发现scp没法自动进行,需要输密码才能继续,或者经常登录某台机器,而密码比较复杂而且很长,这时候可以试试生成密钥对,免密码登录。

假设两台机器,A,B,都是Linux主机,

A为本地主机(即用于控制其他主机的机器)
B为远程主机(即被控制的机器Server), 假如ip为10.8.20.10

在A上的命令(注:希望用A上哪个用户登录B,就在哪个用户下做以下步骤,以下的例子用的是root):

# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码) 
# ssh 10.8.20.10 "mkdir .ssh;chmod 0700 .ssh" (需要输入密码) 
# scp ~/.ssh/id_rsa.pub 10.8.20.10:.ssh/id_rsa.pub (需要输入密码) 

在B上的命令(注:希望A登录到B的哪个用户,就在哪个用户下做以下步骤,以下的例子用的是root):

# touch ~/.ssh/authorized_keys (如果已经存在这个文件, 跳过这条)

# chmod 600 ~/.ssh/authorized_keys (如果前面已经存在这个文件, 可以跳过这条,但一定要保证文件属性只有owner可读) 
# cat ~/.ssh/id_rsa.pub  >> ~/.ssh/authorized_keys (将id_rsa.pub的内容追加到 authorized_keys 中)

回到A机器:

# ssh 10.8.20.10 (不需要密码, 登录成功)

上述的例子是AB上用户名都是root,如果A机器上用户user想登录到B机器上的work用户,则A以user登录生成密钥对,放到user目录的.ssh下,B以work登录,将A上生成的id_rsa.pub追加到work目录的.ssh下,最后从A上登录时,用下面命令即可:

$ ssh work@10.8.20.10

注意,authorized_keys的属性一定要改成只有owner可读写,否则为安全考虑,在登录时系统还是会要求输入密码。

这时试试从A上用scp拷文件到B,会发现也是直接就执行而不需要密码了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值