如何做到两台Linux机器之间不使用密码即可通过SSH远程登录。
有两台linux机器A(192.168.0.195),B(192.168.1.210),想通过A机器ssh的方式登录到B机器,且不必输入密码。
原理很简单,rsa公私钥机制,创建一对密钥(包含公钥和私钥),将公钥放入远程需要登录到的那个机器B上,自己保留私钥。通过A登录远程机器B时,对方验证方法为:使用公钥加密数据,谁能够解密这段数据则证明谁手里有私钥,即谁有权限登录。
下面的例子假设:A和B都是通过root用户进行登录,其实通过其他用户登录方法相同。
方法如下:
1. 在A机器上的/root/.ssh下执行 :ssh-keygen -t
rsa
命令提示输入内容时,都不输入,直接回车。这个命令会产生一对公钥和私钥,名字为id_rsa(访问权限为600)(私钥) 和
id_rsa.pub(公钥)
注意:在产生密钥时,本例子没有设置密码,提示输入passpphrase时,直接回车,没有设置密码。如果设置了密码,可以使用ssh-agent代理,帮实现自动输入passpphrase,这种方式我没有进行实际试验。
2.
将公钥也就是id_rsa.pub发送到远程机器上,并修改名称为authorized_keys:
scp
/root/.ssh/id_rsa.pub
root@192.168.1.210:/root/.ssh/
mv /root/.ssh/id_rsa.pub
/root/.ssh/authorized_keys
当然也可以直接采用scp
/root/.ssh/id_rsa.pub 192.168.1.210:/root/.ssh/authorized_keys
在将公钥拷贝到B机器时,可能会显示如下的提示信息,这些信息可以不用考虑,直接Yes就行了:
The authenticity of host '192.168.0.195
(192.168.0.195)' can't be established.
RSA key fingerprint is
5a:6f:67:d8:4e:0c:3c:20:1a:7f:3e:5b:d0:6e:5d:34.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.195' (RSA) to the list of
known hosts.
Address 192.168.0.195 maps to localhost, but this does not map back
to the address - POSSIBLE BREAK-IN ATTEMPT!
只需要在A机器的/etc/hosts中,增加B机器的IP和机器名:192.168.1.210
B 即可消除上述的信息。
B机器上,/root/.ssh/authorized_key的访问权限为644(缺省应该就是这个权限)。
修改B机器的/etc/ssh/ssh_config,将PermitRootLogin
设置为yes,不需要重新启动sshd。(因为此例子是采用root进行登录的)
成功了,在A机器上,用root用户远程登录B机器:ssh
192.168.1.210
如果不是用root用户远程登录B机器:ssh
–l
user1
192.168.1.210。这种情况下,公钥就应该是放在user1这个用户的.ssh/下了。
分享到:
相关推荐
总结起来,Linux系统SSH登录不需要密码是通过公钥认证机制实现的,涉及到的主要步骤包括生成密钥对、复制公钥到目标机器的`authorized_keys`文件以及设置合适的文件权限。这个功能在多服务器管理和自动化运维中有着...
公钥文件和`.ssh`目录都应该是只可被用户访问,而非组或其他人。 #### 五、总结 通过上述步骤,我们可以成功地在CentOS环境中配置SSH的无密码登录功能。这种配置对于分布式系统的部署和管理尤为重要,可以显著提升...
在Windows环境下,有许多这样的客户端工具可供选择,其中一个例子就是压缩包中的“SSHSecureShellClient-3.2.9.exe”,这是一个名为SSH Secure Shell Client的软件。 SSH Secure Shell Client是一款流行的SSH客户端...
在Linux系统中,SSH(Secure Shell)是一种网络协议,用于安全地远程登录到另一台计算机。SSH免密码登录是Linux管理员常用的便捷功能,它允许用户在不同主机间进行身份验证时无需每次都输入密码,提高效率并减少手动...
**Linux服务器SSH自动登录详解** 在Linux环境中,SSH(Secure Shell)是一种安全的网络协议,用于在远程系统之间建立加密的通信。SSH自动登录允许用户无须输入密码就能登录到另一台服务器,这对于系统管理员执行...
在Linux系统中,SSH(Secure Shell)是一种网络协议,用于安全地远程登录到另一台机器。建立SSH信任关系是免密登录的关键,它允许用户在两台主机之间进行无密码的SSH连接,增强了安全性,避免了每次登录时输入密码的...
Linux远程连接工具类SSH是一种广泛使用的通信协议,它允许用户在本地计算机上安全地操作远程Linux系统。SSH,全称为Secure Shell,旨在提供加密的网络服务,特别适用于管理服务器、执行命令、传输文件等场景。在开发...
Linux SSH Putty.zip 文件是一个与远程访问Linux服务器相关的压缩包,它包含了一个流行的终端模拟器Putty,用于连接到Linux系统使用SSH(Secure Shell)协议。SSH是一种网络协议,允许用户安全地通过不安全的网络...
**Linux中的RSA认证登录SSH详解** 在Linux系统中,SSH(Secure Shell)是一种安全的网络协议,用于在不安全的网络环境中提供加密的远程登录和其他网络服务。SSH使用密钥对进行身份验证,其中RSA是一种非对称加密...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。它是Linux系统管理员和IT专业人员的必备工具,尤其在管理远程服务器时。SSH连接工具通常提供图形用户界面(GUI)和命令行...
通过配置SSH密钥对,用户可以从外部机器通过跳板机安全地连接到内网中的其他服务器,而无需在每台服务器上输入密码。 "Automatic Login SSH"的核心在于无密码登录,这主要依赖于SSH公钥认证。以下是一步一步的实现...
在Linux和Unix-like系统中,SSH是标准的远程访问工具,而Windows系统也有各种SSH客户端软件可供使用,如PuTTY。 SSH登录界面是指用户通过输入用户名和密码来连接到远程服务器的界面。这个界面通常出现在SSH客户端...
通过PuTTY,开发者可以直接在本地机器上输入命令,查看运行日志,调整系统设置,或者进行代码部署,而无需物理访问远程服务器。 PuTTY的其他特点还包括窗口会话管理,用户可以保存多个会话配置,方便切换;支持颜色...
3. 命令执行:SSH允许用户在远程主机上执行命令,无需实际登录到该主机。这对于自动化任务和脚本非常有用。 4. 端口转发:SSH提供端口转发功能,可以将本地机器的某个端口上的流量转发到远程服务器,或者反之,这样...
在Linux环境中,尤其是在Hadoop集群的管理中,SSH(Secure SHell)是不可或缺的工具,它允许用户在不同节点之间安全地执行命令。在没有root权限的情况下,普通用户也能配置SSH,实现自动化操作,这对于集群维护和...
在构建Hadoop集群时,尤其是基于CentOS 7的Linux系统,配置节点间的免密登录是必不可少的步骤,因为这可以极大地简化管理和维护工作。本文档详细介绍了如何配置CentOS 7系统的SSH免密登录,使得多台机器之间能够安全...
在主机A上,以用户名`user`登录,执行`ssh-keygen -t rsa`命令,这将生成一对密钥——私钥`id_rsa`和公钥`id_rsa.pub`,默认存储在`~/.ssh/`目录下。私钥是保密的,公钥可公开分享。 2. **传输公钥**: 在主机B上...
总之,SSH Secure Shell工具是Linux系统管理员的重要武器,提供安全的远程访问和文件传输功能。理解其工作原理和正确使用方法,对于维护系统的安全性和管理效率至关重要。在日常运维工作中,熟练掌握SSH的各种技巧,...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH登录演示("ssh登录demo")通常涉及到在本地计算机上通过SSH客户端连接到远程服务器的过程,以便进行命令行交互、文件...