Linux命令之远程登录/无密码登录-ssh,ssh-keygen,ssh-copy-id

[url]http://blog.csdn.net/wangjunjun2008/article/details/20037101[/url]

在信任环境下,如果每次远程登录时,都要输入密码,感觉太浪费时间了,尤其是密码很复杂、维护的服务器比较多的情况下。
于是有了正常需求:不用输入密码即可实现远程登录。
实现步骤如下:
[b]1、本地生成一对秘钥文件(公钥和私钥);[/b]
$ ssh-keygen
#以上命令等价于 ssh-keygen -t rsa
#-t:指定密钥的类型,默认为SSH-2 的rsa类型;
运行上面的命令后,系统会出现一系列提示,可以一路回车。特别说明,其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,可以设置一个。运行结束以后,会在 ~/.ssh/ 目录下新生成两个文件:id_rsa.pub和id_rsa。前者公钥,后者是私钥。

[b]2、将公钥传送到远程主机host上面;[/b]
$ ssh-copy-id user@host
经过以上两步之后,就可以实现无密码远程登录了(远程主机将用户的公钥保存在~/.ssh/authorized_keys文件中)。

[b]3. 远程链接到服务器:[/b]
ssh root@xxx.xxx.xxx.xxx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你遇到 "/usr/bin/ssh-copy-id: ERROR: Host key verification failed." 错误时,这意味着SSH主机密钥验证失败。主机密钥验证是SSH连接过程中的一个安全步骤,用于确保你连接的主机是可信的。 解决这个问题的一个方法是通过在ssh命令中添加选项来禁用主机密钥验证。你可以使用下面的命令来完成这个操作: ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.125.112 这个命令中的"-o StrictHostKeyChecking=no"选项将禁用主机密钥验证,"-o UserKnownHostsFile=/dev/null"选项将指定一个空文件来存储已知主机密钥。 另一个可能的原因是你尝试在本地计算机上添加一个密钥,但是在目标主机上找不到相应的密钥文件。你可以使用ssh-keygen命令生成一对新的密钥,并将公钥复制到目标主机上的正确位置。下面是一个生成新密钥并复制到目标主机的步骤: 1. 在本地计算机上使用ssh-keygen命令生成一对新的密钥。你可以使用以下命令ssh-keygen 2. 进入生成的密钥文件所在的目录。默认情况下,它们将位于~/.ssh/目录下。 cd ~/.ssh/ 3. 复制公钥文件到目标主机上的正确位置。你可以使用以下命令ssh-copy-id -i id_rsa.pub root@192.168.125.112 请确保将以上命令中的 "root@192.168.125.112" 替换为目标主机的用户名和IP地址。 4. 输入目标主机的密码以完成复制过程。 请尝试以上方法,并确保你的密钥正确复制到了目标主机上的正确位置。如果问题仍然存在,请检查目标主机上的SSH配置和主机密钥文件是否正确,并确保你的连接设置正确。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值