ssh centos 无密码?centos ssh配置
大家好,今天给各位分享ssh centos 无密码的一些知识,其中也会对centos ssh配置进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
如何在 CentOS / RHEL 上设置 SSH 免密码登录
本文会告诉你怎样在 CentOS/RHEL上设置 SSH免密码登录。自动登录配置好以后,你可以通过它使用 SSH(Secure Shell)和安全复制(SCP)来移动文件。
SSH是开源的,是用于远程登录的最为可靠的网络协议。系统管理员用它来执行命令,以及通过 SCP协议在网络上向另一台电脑传输文件。
通过配置 SSH免密码登录,你可以享受到如下的便利:
用脚本实现日常工作的自动化。
增强 Linux服务器的安全性。这是防范虚拟专用服务器(VPS)遭受暴力破解攻击的一个推荐的方法,SSH密钥单凭暴力破解是几乎不可攻破的。
什么是 ssh-keygen
ssh-keygen是一个用来生成、创建和管理 SSH认证用的公私钥的工具。通过 ssh-keygen命令,用户可以创建支持SSH1和 SSH2两个协议的密钥。ssh-keygen为 SSH1协议创建 RSA密钥,SSH2则可以是 RSA或 DSA。
什么是 ssh-copy-id
ssh-copy-id是用来将本地公钥拷贝到远程的 authorizedkeys文件的脚本命令,它还会将身份标识文件追加到远程机器的~/.ssh/authorizedkeys文件中,并给远程主机的用户主目录适当的的权限。
SSH密钥
SSH密钥为登录 Linux服务器提供了更好且安全的机制。运行 ssh-keygen后,将会生成公私密钥对。你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁。两者匹配时,系统无需密码就能解除锁定。
在 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:
测试节点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 is 6d:8f:63:9b:3b:63:e1:72:b3:06:a4:e4:f4:37:21:42.
Are you sure you want to continue connecting(yes/no)? yes
Warning: Permanently added'192.168.0.10'(RSA) to the list of known hosts.
root@192.168.0.10's password:
Lastlogin:ThuDec1022:04:552015from192.168.0.1
[root@node2~]#
步骤二:
使用 ssh-key-gen命令生成公钥和私钥,这里要注意的是可以对私钥进行加密保护以增强安全性。
[root@node1~]#ssh-keygen
Generatingpublic/private rsa key pair.
Enterfilein which to save the key(/root/.ssh/id_rsa):
Enter passphrase(emptyforno passphrase):
Enter same passphrase again:
Your identification has been saved in/root/.ssh/id_rsa.
Yourpublic key has been saved in/root/.ssh/id_rsa.pub.
The key fingerprint is:
b4:51:7e:1e:52:61:cd:fb:b2:98:4b:ad:a1:8b:31:6d root@node1.ehowstuff.local
The key's randomart image is:
+--[ RSA 2048]----+
|.++|
| o o o|
| o o o.|
|. o+..|
| S..|
|....|
| o E oo.o|
|= ooo.|
|. o.o.|
+-----------------+
步骤三:
用 ssh-copy-id命令将公钥复制或上传到远程主机,并将身份标识文件追加到节点2的~/.ssh/authorized_keys中:
[root@node1~]#ssh-copy-id-i~/.ssh/id_rsa.pub 192.168.0.10
root@192.168.0.10's password:
Now try logging into the machine, with"ssh'192.168.0.10'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
步骤四:
验证免密码 SSH登录节点2:
[root@node1~]#ssh root@192.168.0.10
Lastlogin:SunDec1314:03:202015from www.ehowstuff.local
我希望这篇文章能帮助到你,为你提供 SSH免密码登录 CentOS/ RHEL的基本认知和快速指南。
centos怎么配置ssh免密码
#环境说明\x0d\x0a客户机:Mac OS X\x0d\x0a服务器:CentOS 6.5\x0d\x0a客户端:OpenSSH,OS X及大多数Linux都内置了OpenSSH.’ssh-v’命令可以查看版本.\x0d\x0a\x0d\x0a#大致流程\x0d\x0a1.在客户机创建一对密钥文件,包括公钥文件(~/.ssh/id_rsa.pub),私钥文件(~/.ssh/id_rsa).\x0d\x0a\x0d\x0a2.把公钥放到服务器上(~/.ssh/authorized_keys),在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以自动登录了。\x0d\x0a\x0d\x0a#客户机配置\x0d\x0a1.查看~/.ssh文件夹,若已经存在有公钥文件(id_rsa.pub),私钥文件(id_rsa),则可以跳过客户端配置.\x0d\x0a\x0d\x0a2.生成密钥文件.\x0d\x0a$ ssh-keygen \x0d\x0a然后一路回车.\x0d\x0a然后~/.ssh下会生成id_rsa.pub和id_rsa,其中id_rsa文件起到唯一标识你的客户机的作用.\x0d\x0a注意:不要改这两个文件的文件名,ssh登陆时会读取id_rsa文件.\x0d\x0a\x0d\x0a#服务器配置\x0d\x0a1.修改sshd配置文件(/etc/ssh/sshd_config).\x0d\x0a找到以下内容,并去掉注释符”#“\x0d\x0a=========================\x0d\x0aRSAAuthentication yes\x0d\x0aPubkeyAuthentication yes\x0d\x0aAuthorizedKeysFile.ssh/authorized_keys\x0d\x0a=========================\x0d\x0a\x0d\x0a2.配置authorized_keys文件.\x0d\x0a若’~/.ssh/authorized_keys’不存在,则建立.ssh文件夹和authorized_keys文件.\x0d\x0a将上文中客户机id_rsa.pub的内容拷贝到authorized_keys中.\x0d\x0aPS:可以在客户机中执行命令来拷贝:\x0d\x0acat~/.ssh/id_rsa.pub| ssh user@host“cat->>~/.ssh/authorized_keys”\x0d\x0a\x0d\x0a注意:\x0d\x0a1).ssh目录的权限必须是700\x0d\x0a2).ssh/authorized_keys文件权限必须是600 \x0d\x0a\x0d\x0a3.重启sshd.\x0d\x0a$/etc/init.d/sshd restart\x0d\x0a\x0d\x0a#测试\x0d\x0a客户机执行:ssh-v user@host(-v调试模式)\x0d\x0a会显示一些登陆信息.\x0d\x0a若登陆失败,或者仍然要输入密码,可以在服务器查看日志文件:/var/log/secure.\x0d\x0a\x0d\x0a若登陆成功,则以后就可以用’ssh user@host’直接登陆了,不用输入密码.
CentOS配置ssh无密码登录注意事项
在CentOS中配置无密码SSH登录时,首先需要修改SSH配置文件,取消对`PasswordAuthentication`和`PubkeyAuthentication`的注释,重启sshd服务后,以非root用户(如hadoop)登录。如果初始情况下,通过SSH连接到其他主机(如master.hadoop)需要输入密码,那么可以生成密钥对,生成的id_dsa和id_dsa.pub文件分别用于私钥和公钥。将公钥id_dsa.pub的内容添加到目标主机的~/.ssh/authorized_keys文件中,可以通过命令`cat~/.ssh/id_dsa.pub| ssh hadoop@master.hadoop'cat-~/.ssh/authorized_keys'`完成,输入目标主机的用户密码。
但要注意,CentOS默认的authorized_keys文件权限可能不够安全,因为它允许群组用户修改。为了提高安全性,应使用`chmod 644`将权限设置为文件所有者可读写,群组和其他用户只能读取。这满足了系统对文件权限的要求,即除了所有者外的其他用户不能写入。
经过以上步骤,slave.hadoop已经可以无密码登录到master.hadoop了。只需要在源主机上将公钥发送到目标主机,添加到目标主机的authorized_keys文件中,就完成了跨主机的无密码SSH登录配置。