首先有两台Linux系统的A、B服务器,A的IP为192.168.11.89、B的IP为192.168.11.90,默认情况下在A机器上执行 ssh user@192.168.11.90 是需要输入密码的,如果在完全信任的情况下,每次执行ssh user@192.168.11.90都需要密码,这样就过于麻烦了,下面介绍下通过ssh-keygen设置ssh免密码登陆的方式;
1、在A的机器上执行:
a.生成公钥和私钥:
ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥(id_rsa.pub)和私钥(id_rsa),不设置密码);
b.将A上的公钥传到B机器上该user用户下的.ssh目录下
scp ~/.ssh/id_rsa.pub user@192.168.11.90:.ssh/id_rsa.pub (需要输入密码)或者使用nc、ssh-copy-id进行传输。
注意将B机器上该user用户下的.ssh目录的权限修改为700
2、在B的机器上执行:
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 /home/user/
3、测试
在A机器上执行 ssh user@192.168.11.90,第一次的话会出现以下文字:
The authenticity of host 'app--02 (192.168.11.90)' can't be established. RSA key fingerprint is 77:1a:83:89:bd:5e:d3:12:0e:42:9b:bf:e3:5c:51:a8. Are you sure you want to continue connecting (yes/no)?
输入yes,如果无需密码就ssh到192.168.11.90上的话则证明配置OK了。
FAQ:可能造成配置之后仍需要密码的问题:
1、确认B机器上该user下的 ~/.ssh/ 目录的权限为700
2、确认B机器上该user下的 /home/user/目录的权限为700
3、确认B机器上该user下的 ~/.ssh/authorized_keys文件的权限为600
4、如果以上三个文件和目录的权限都没问题的话,尝试修改B机器上的 /etc/ssh/sshd_config文件
修改以下配置:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
重启SSH服务,/etc/rc.d/init.d/sshd restart
如果以上解决办法都不能解决你的问题的话,欢迎一起讨论。
相关推荐
下面将详细介绍SSH远程登录Linux的基本概念、配置及使用方法。 1. SSH的基本原理 SSH通过加密通信通道,确保了数据传输的安全性。它使用公钥/私钥对进行身份验证,防止中间人攻击。当用户尝试连接到远程Linux服务器...
在Linux环境下,尤其是Red Hat Enterprise Linux (RHEL) 7版本中,掌握关键的命令行工具是必不可少的技能之一。本文将详细介绍一系列重要的Linux命令及其用法,帮助读者更好地理解和运用这些工具。 #### 重要命令...
编辑`/etc/ssh/sshd_config`文件,根据需求调整安全设置,如禁用密码登录(`PasswordAuthentication no`),只允许特定用户登录(`PermitUsers`),限制端口(`Port`)等。重启SSH服务使更改生效:`sudo systemctl ...
首先,我们可以使用`sshpass`工具,这是一个允许在不交互的情况下向SSH或SCP命令提供密码的开源程序。安装`sshpass`的方法取决于你的Linux发行版。在Debian或Ubuntu上,你可以使用`apt`命令安装: ```bash sudo apt...
Linux远程登录和无密码登录是Linux系统管理中的基础操作,主要涉及到SSH(Secure Shell)协议。SSH是一种加密的网络协议,用于在不安全的网络环境中提供安全的远程登录和其他服务。在RHEL 5系统中,OpenSSH是默认的...
OpenSSH 是一个免费的、开源的 SSH 服务器实现,广泛应用于 Linux、Unix 和 Windows 平台。OpenSSH 8.8 版本带来了许多新功能和安全修复,升级到该版本可以提高 SSH 服务器的安全性和稳定性。 升级前的准备 -------...
**SSH(Secure Shell)**是一种网络协议,用于在不安全的网络上安全地远程登录到Linux操作系统,并执行命令、传输文件和其他操作。SSH通过加密所有传输的数据,确保了通信的安全性,防止了中间人攻击和其他形式的...
你可以使用`ssh-keygen -t rsa`生成公钥和私钥对,然后使用`ssh-copy-id -i id_rsa.pub root@ip`将公钥复制到远程主机的`~/.ssh/authorized_keys`文件中,这样就可以无密码登录了。 `scp`命令用于安全地复制文件和...
4. 远程登录:使用`ssh username@hostname`命令连接到远程服务器,如果设置了公钥认证,则无需输入密码。 5. 文件传输:使用`scp`命令进行文件的上传和下载,例如`scp file.txt user@remotehost:/path/to/directory...
2. **使用Windows的OpenSSH客户端**:Windows 10版本1809及更高版本内置了OpenSSH客户端,可以通过命令行使用`ssh`命令连接到Linux服务器。 ### 六、公钥认证 公钥认证提供比密码更安全的认证方式。在本地生成公钥...
1. 生成SSH密钥对:使用`ssh-keygen`命令生成公钥和私钥。 2. 将公钥复制到远程服务器:使用`ssh-copy-id user@remote_host`命令将公钥添加到服务器的`~/.ssh/authorized_keys`文件中。 3. 连接服务器:使用`ssh ...
vi(Visual Editor Improved)是Linux下常用的文本编辑器。vi的基本操作包括: - 进入插入模式:在命令模式下按`i` - 保存并退出:在命令模式下输入`:wq`,然后按回车 - 不保存退出:在命令模式下输入`:q!`,...
为了提高安全性与便捷性,可以设置免密码SSH登录功能,即通过公钥认证方式实现无需输入密码即可完成远程登录的过程。本文将详细介绍如何在两台Linux机器之间实现这一功能。 #### 基础概念 - **SSH(Secure Shell)...
4. **SSH密钥对**:为了免密码登录,可以生成SSH密钥对。在本地使用`ssh-keygen`创建一对密钥,并将公钥(默认为`~/.ssh/id_rsa.pub`)添加到远程服务器的`~/.ssh/authorized_keys`文件中。 ```bash ssh-keygen -...
1. **限制SSH访问**:编辑`/etc/ssh/sshd_config`,限制只允许特定用户或IP登录,禁用密码登录,启用公钥认证。 2. **更新SSH版本**:定期检查并更新SSH服务器软件,避免已知漏洞。 3. **防火墙规则**:配置防火墙...
1. **安装SSH服务**:在大多数Linux发行版中,可以通过包管理器(如`apt` for Ubuntu/Debian或`yum` for CentOS/RHEL)来安装SSH服务。例如: ``` sudo apt install openssh-server ``` 2. **配置SSH**:默认...
1. 安装SSH服务器:对于Linux系统,通常使用OpenSSH服务器软件包。可以通过包管理器如apt(Ubuntu/Debian)、yum(CentOS/RHEL)或dnf(Fedora)来安装。 - Ubuntu/Debian: ``` sudo apt-get update sudo apt-...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。它是IT领域中不可或缺的工具,特别是在服务器管理和自动化任务执行方面。本教程将详细介绍SSH的简单配置,帮助初学者理解和...
使用`ssh-keygen`命令生成公钥和私钥,通常存储在`~/.ssh/id_rsa`(私钥)和`~/.ssh/id_rsa.pub`(公钥)。 5. **密钥对认证** 将公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中,即可实现无密码登录: ...
更安全的方式是使用密钥对认证,生成公钥私钥对(`ssh-keygen`命令),然后将公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中(`ssh-copy-id`命令)。 **四、SSH文件传输** SSH也提供了安全的文件传输功能...