如何实现Linux主机远程登录ssh免密码

一、情景

公司刚上几台Linux,现在要把主机之间实现都能远程ssh免密码登陆。

二、原理

很简单,使用ssh-keygen在主机A上生成private和public密钥,将生成的public密钥拷贝到远程机器主机B上后,就可以使用ssh命令无需密码登录到另外一台机器主机B上。

三、步骤

主机A:

1.生成公钥和私钥文件id_rsa和id_rsa.pub (敲三下回车即可)。


  1. [root@bogon ~]# ssh-keygen -t rsa  
  2. Generating public/private rsa key pair.  
  3. Enter file in which to save the key (/root/.ssh/id_rsa):  
  4. Enter passphrase (empty for no passphrase):  
  5. Enter same passphrase again:  
  6. Your identification has been saved in /root/.ssh/id_rsa.  
  7. Your public key has been saved in /root/.ssh/id_rsa.pub.  
  8. The key fingerprint is:  
  9. 67:da:0d:79:e0:d6:2b:cd:7d:22:af:51:7e:9c:75:fe root@bogon  
  10. The key's randomart image is:  
  11. +--[ RSA 2048]----+  
  12. | |  
  13. | |  
  14. | . |  
  15. | . + |  
  16. | S B o . o|  
  17. | * * = o+|  
  18. | . o B +.=|  
  19. | . + +.|  
  20. | ... E|  
  21. +-----------------+ 

2.ssh-cop-id命令会将指定的公钥文件复制到远程计算机。


  1. [root@bogon ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.1.250.166  
  2. The authenticity of host '10.1.250.166 (10.1.250.166)' can't be established.  
  3. RSA key fingerprint is c8:9d:6d:92:55:77:3d:3e:af:f5:cb:18:80:5a:47:93.  
  4. Are you sure you want to continue connecting (yes/no)? yes  
  5. Warning: Permanently added '10.1.250.166' (RSA) to the list of known hosts.  
  6. reverse mapping checking getaddrinfo for bogon [10.1.250.166] failed - POSSIBLE BREAK-IN ATTEMPT!  
  7. root@10.1.250.166's password: <主机B的登陆密码> 
  8. Now try logging into the machine, with "ssh 'root@10.1.250.166'", and check in:  
  9. .ssh/authorized_keys  
  10. to make sure we haven't added extra keys that you weren't expecting. 

3.然后ssh登陆主机B验证是否需要密码。


  1. [root@localhost ~]# ssh 10.1.250.166  
  2. reverse mapping checking getaddrinfo for bogon [10.1.250.166] failed - POSSIBLE BREAK-IN ATTEMPT!  
  3. Last login: Wed Oct 21 10:05:39 2015 from 10.1.250.141  
  4. [root@bogon ~]# 

4.登陆成功后,我们需要在主机B也做下以上3步,这样就可以相互免密码ssh登陆。(如果有多台主机,每台主机都做下相同操作,以方便以后管理)。

5.权限问题

建议用其他用户做ssh登陆的话,调整目录文件权限。

设置authorized_keys权限


  1. chmod 644 authorized_keys 

设置.ssh目录权限


  1. chmod 700 -R .ssh 

6.要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。

作者:好大的刀

来源:51CTO

时间: 2024-10-27 05:08:02

如何实现Linux主机远程登录ssh免密码的相关文章

linux远程登录ssh免密码配置方法_Linux

一.情景 公司刚上几台Linux,现在要把主机之间都能远程ssh免密码登陆. 二.原理很简单,使用ssh-keygen 在主机A上生成private和public密钥,将生成的public密钥拷贝到远程机器主机B上后,就可以使用ssh命令无需密码登录到另外一台机器主机B上. 三.步骤 主机A: 1. 生成公钥和私钥文件id_rsa和id_rsa.pub (敲3下回车即可) [root@bogon ~]# ssh-keygen -t rsa Generating public/private rs

ssh免密码登录-ssh 免密码登录 ,不成功 ,还要密码

问题描述 ssh 免密码登录 ,不成功 ,还要密码 总是做不对,每次还是要密码,,有没有 详细点的步骤呢 ,,谢谢 解决方案 是为了hadoop 做ssh免密码登录吗? 以前写过一篇博客 是关于这个的 你看下 不行继续提问http://blog.csdn.net/p_max/article/details/45701241 解决方案二: 根据文章回复 ,现在可以了,ssh-add 有的时候需要执行下 此命令,感谢

Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享_linux shell

环境: ssh server: 192.168.100.29  server.example.com ssh client: 192.168.100.30  client.example.com 通过root用户建立秘钥认证实现SHELL脚本管理,分发,部署 首先client端创建秘钥对,并将公钥分发给需要登录的SSH服务端 注:公钥相当于锁,私钥相当于钥匙,我们这里相当于在客户端创建一对钥匙和锁,想要做到SSH免密码登录,就相当于我们将锁分发到服务端并装锁,然后客户端就可以利用钥匙开锁. 一.

如何在 CentOS / RHEL 上设置 SSH 免密码登录

如何在 CentOS / RHEL 上设置 SSH 免密码登录 作为系统管理员,你计划在 Linux 上使用 OpenSSH,完成日常工作的自动化,比如文件传输.备份数据库转储文件到另一台服务器等.为实现该目标,你需要从主机 A 能自动登录到主机 B.自动登录也就是说,要在 shell 脚本中使用ssh,而无需要输入任何密码. 本文会告诉你怎样在 CentOS/RHEL 上设置 SSH 免密码登录.自动登录配置好以后,你可以通过它使用 SSH (Secure Shell)和安全复制 (SCP)来

如何在CentOS/RHEL上设置SSH免密码登录

作为系统管理员,你计划在 Linux 上使用 OpenSSH,完成日常工作的自动化,比如文件传输.备份数据库转储文件到另一台服务器等.为实现该目标,你需要从主机 A 能自动登录到主机 B.自动登录也就是说,要在 shell 脚本中使用ssh,而无需要输入任何密码. 本文会告诉你怎样在 CentOS/RHEL 上设置 SSH 免密码登录.自动登录配置好以后,你可以通过它使用 SSH (Secure Shell)和安全复制 (SCP)来移动文件. SSH 是开源的,是用于远程登录的最为可靠的网络协议

ssh 免密码登录

注意:如果A机器需要免密码登录B机器,则需要把A机器的公钥id_rsa.pub 加到 B机器的authorized_keys,不要弄反了 ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 有机器A(192.168.1.155),B(192.168.1.181).现想A通过ssh免密码登录到B. 1.在A机下生成公钥/私钥对. [chenlb@A ~]$ ssh-keygen -t rsa  不用输入任何东西,回车三次 它在/

CentOS/RHEL上设置SSH免密码登录的教程

以下步骤在 CentOS 5/6/7.RHEL 5/6/7 和 Oracle Linux 6/7 上测试通过. 节点1:192.168.0.9 节点2 : 192.168.l.10 步骤一 : 测试节点1到节点2的连接和访问: [root@node1 ~]# ssh root@192.168.0.10 The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established. RSA key fingerprint i

ubuntu16.04服务器配置ssh免密码登录_Linux

在客户端操作 ssh-keygen -t rsa 文件位置写/home/try/.ssh/server_rsa,不使用默认值,我命名为server_rsa担心影响到git的key(因为我的git使用的是默认值) ssh-copy-id root@123.45.56.78(你的服务器ip), 或这使用 cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/autho

SSH免密码登陆

    SSH 的全称是Secure Shell,使用非对称加密方式,传输内容使用rsa 或者dsa 加密,可以有效避免网络窃听.有时候,需要能免密码登陆Linux系统,比如Hadoop操作,所以需要开启SSH免密码登陆.        注意,不用的用户生成的密钥是不同的,每个用户生成密钥都放在该用户主目录的".ssh"目录中:比如:root生成的密钥存放在"/root/.ssh",个人用户的存放在"/home/[username]/.ssh"目