ssh免密码登录配置方法

本文详细介绍了如何配置SSH密钥对,以实现从serverA的kamfu用户无密码登录到serverB的weblogic用户。主要步骤包括在serverA上生成密钥对,使用ssh-copy-id将公钥复制到serverB的authorized_keys文件中,确保目录和文件权限正确,从而实现免密码登录。此外,还提到了其他拷贝公钥到远程服务器的方法。

首先,说明一下我们要做的是,serverA 服务器的 kamfu 用户免密码登录 serverB 服务器的 weblogic用户。

我们先使用kamfu 登录 serverA 服务器

[root@serverA ~]# su - kamfu
[usera@serverA ~]$ pwd
/home/kamfu

然后在serverA上生成密钥对,执行命令后 一直按回车到结束
[usera@serverA ~]$ ssh-keygen -t rsa
在这里插入图片描述

此时会在/home/kamfu/.ssh目录下生成密钥对
在这里插入图片描述

[usera@serverA ~]$ ls -la .ssh
总用量 16
drwx------ 2 usera usera 4096 8月 24 09:22 .
drwxrwx— 12 usera usera 4096 8月 24 09:22 …
-rw------- 1 usera usera 1675 8月 24 09:22 id_rsa
-rw-r–r-- 1 usera usera 399 8月 24 09:22 id_rsa.pub

然后将公钥上传到serverB 服务器,并以weblogic用户登录
输入yes ,输入一次密码。
[usera@portalweb1 ~]$ ssh-copy-id weblogic@(B服务器IP)

在这里插入图片描述

这个时候usera的公钥文件内容会追加写入到userb的 .ssh/authorized_keys 文件中

可以查看2边的文件
[usera@serverA ~]$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2dpxfvifkpswsbusPCUWReD/mfTWpDEErHLWAxnixGiXLvHuS9QNavepZoCvpbZWHade88KLPkr5XEv6M5RscHXxmxJ1IE5vBLrrS0NDJf8AjCLQpTDguyerpLybONRFFTqGXAc/ximMbyHeCtI0vnuJlvET0pprj7bqmMXr/2lNlhIfxkZCxgZZQHgqyBQqk/RQweuYAiuMvuiM8Ssk/rdG8hL/n0eXjh9JV8H17od4htNfKv5+zRfbKi5vfsetfFN49Q4xa7SB9o7z6sCvrHjCMW3gbzZGYUPsj0WKQDTW2uN0nH4UgQo7JfyILRVZtwIm7P6YgsI7vma/vRP0aw== usera@serverA

查看serverB服务器userb用户下的 ~/.ssh/authorized_keys文件,内容是一样的,此处我就不粘贴图片了。

[userb@serverB ~]$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2dpxfvifkpswsbusPCUWReD/mfTWpDEErHLWAxnixGiXLvHuS9QNavepZoCvpbZWHade88KLPkr5XEv6M5RscHXxmxJ1IE5vBLrrS0NDJf8AjCLQpTDguyerpLybONRFFTqGXAc/ximMbyHeCtI0vnuJlvET0pprj7bqmMXr/2lNlhIfxkZCxgZZQHgqyBQqk/RQweuYAiuMvuiM8Ssk/rdG8hL/n0eXjh9JV8H17od4htNfKv5+zRfbKi5vfsetfFN49Q4xa7SB9o7z6sCvrHjCMW3gbzZGYUPsj0WKQDTW2uN0nH4UgQo7JfyILRVZtwIm7P6YgsI7vma/vRP0aw== usera@serverA

另外我们要注意,.ssh目录的权限为700,其下文件authorized_keys和私钥的权限为600。否则会因为权限问题导致无法免密码登录。我们可以看到登陆后会有known_hosts文件生成。

[useb@serverB ~]$ ls -la .ssh
total 24
drwx------. 2 useb useb 4096 Jul 27 16:13 .
drwx------. 35 useb useb 4096 Aug 24 09:18 …
-rw------- 1 useb useb 796 Aug 24 09:24 authorized_keys
-rw------- 1 useb useb 1675 Jul 27 16:09 id_rsa
-rw-r–r-- 1 useb useb 397 Jul 27 16:09 id_rsa.pub
-rw-r–r-- 1 useb useb 1183 Aug 11 13:57 known_hosts
这样做完之后我们就可以免密码登录了

[usera@serverA ~]$ ssh weblogic@(B服务器IP)

另外,将公钥拷贝到服务器的~/.ssh/authorized_keys文件中方法有如下几种:
1、将公钥通过scp拷贝到服务器上,然后追加到~/.ssh/authorized_keys文件中,这种方式比较麻烦。scp -P 22 ~/.ssh/id_rsa.pub user@host:~/。
2、通过ssh-copy-id程序,就是我演示的方法,ssh-copyid user@host即可
3、可以通过cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’,这个也是比较常用的方法,因为可以更改端口号。

<think>好的,用户想了解如何配置SSH免密码登录。我需要根据提供的引用资料来整理步骤。首先,用户需要在本地生成SSH密钥对,使用ssh-keygen命令,这一步引用1和2都有提到。然后是上传公钥到服务器,引用1和3提到将公钥内容复制到服务器的~/.ssh/authorized_keys文件中,可能需要手动创建目录和设置权限。接着是权限设置,引用4指出.ssh目录权限应为700,authorized_keys是600,否则可能无法生效。最后是测试连接,确保配置正确。另外,用户可能遇到的问题比如权限错误,需要检查目录和文件的权限是否正确。可能还需要考虑服务器的SSH配置,比如是否允许公钥认证,引用4提到PasswordAuthentication和PubkeyAuthentication的设置。最后生成相关问题,比如密钥类型、权限设置、故障排除等。需要确保步骤清晰,用中文回答,使用正确的LaTeX格式,比如命令用行内公式。可能还需要提醒用户不同操作系统或SSH版本的差异,比如Windows可能需要使用Git Bash,引用3提到使用工具上传公钥的情况。整个过程要分步骤说明,确保用户能一步步操作。</think>### SSH免密码登录配置教程 #### 一、生成SSH密钥对 1. **本地生成密钥** 在本地终端执行以下命令(支持RSA/ED25519等算法,默认使用RSA-3072): ```bash ssh-keygen -t rsa -b 4096 ``` 按提示选择密钥保存路径(默认`$HOME/.ssh/id_rsa`)和密码(可选)。若无需密码直接回车两次[^1][^2]。 2. **查看生成的密钥** 生成的密钥对包含: - 私钥:`~/.ssh/id_rsa`(需严格保密) - 公钥:`~/.ssh/id_rsa.pub`(需上传至服务器) #### 二、上传公钥至服务器 1. **手动上传方法** - 复制公钥内容: ```bash cat ~/.ssh/id_rsa.pub ``` - 登录服务器,将公钥追加到授权文件: ```bash mkdir -p ~/.ssh echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` 2. **自动上传方法(推荐)** 使用`ssh-copy-id`工具一键完成: ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip ``` 输入服务器密码后自动完成配置[^1][^2]。 #### 三、服务器SSH配置检查 确保服务器`/etc/ssh/sshd_config`包含以下配置: ```bash PubkeyAuthentication yes # 启用公钥认证 AuthorizedKeysFile .ssh/authorized_keys # 公钥存储路径 PasswordAuthentication no # 可选:禁用密码登录(增强安全性) ``` 修改后重启SSH服务: ```bash sudo systemctl restart sshd ``` #### 四、测试免密登录 ```bash ssh user@server_ip ``` 若直接登录成功,说明配置完成。若失败,检查以下常见问题: - **权限错误**:服务器`.ssh`目录权限需为`700`,`authorized_keys`文件权限为`600`[^4]。 - **密钥路径错误**:确保`ssh`命令默认使用正确的私钥路径,或通过`-i`指定: ```bash ssh -i ~/.ssh/custom_key user@server_ip ``` #### 五、高级配置(可选) - **多密钥管理**:通过`~/.ssh/config`文件为不同服务器指定密钥: ```bash Host server_alias HostName server_ip User user IdentityFile ~/.ssh/custom_key ``` - **禁用root登录**:修改`/etc/ssh/sshd_config`中的`PermitRootLogin no`[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值