ubuntu 直接以ssh root方式免密登陆

本文详细介绍了如何在Ubuntu系统中启用root用户,并通过SSH实现A机器到B机器的root用户免密登录过程。包括安装SSH服务、修改配置文件、生成及复制密钥等步骤。
1、启用root用户

ubuntu默认是不启用root用户也不允许root远程登录的。所以需要先启用root用户

sudo passwd root
2、安装ssh server
sudo apt-get install openssh-server
3、对 openssh server进行配置
sudo vi /etc/ssh/sshd_config

找到PermitRootLogin no一行,改为PermitRootLogin yes

4、以root身份免密登陆sa

假定A机器(hostname为master)以root身份免密登陆到B机器(node)的root账户

#在A在root下生成密钥
ssh-keygen -t rsa
#root用户密钥复制到B的root用户下
ssh-copy-id -i /root/.ssh/id_rsa.pub master
5、 重启 openssh server
sudo service ssh restart
<think>我们被要求实现Windows系统到Ubuntu 24.04.1系统使用主机名进行SSH免密登录的方法。 步骤概述: 1. 在Windows上生成SSH密钥对(如果还没有的话)。 2. 将Windows上的公钥复制到Ubuntu服务器的~/.ssh/authorized_keys文件中。 3. 配置Windows的SSH客户端,以便使用主机名连接(可能需要编辑hosts文件或配置SSH的config文件)。 4. 测试连接。 详细步骤: 第一步:在Windows上生成SSH密钥对 - 打开PowerShell(管理员权限不是必须的,普通用户即可)。 - 运行以下命令生成密钥对(如果已有密钥,可跳过): ssh-keygen -t rsa -b 4096 按照提示输入保存位置(默认是C:\Users\你的用户名\.ssh\id_rsa)和密码(可选,如果设置则每次使用密钥需要输入密码)。 - 生成后,在.ssh目录下会有两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。 第二步:将公钥复制到Ubuntu服务器 - 方法1:使用ssh-copy-id(在Windows 10 1809以后版本,OpenSSH客户端默认已安装) 在PowerShell中运行: ssh-copy-id username@ubuntu_hostname (如果Ubuntu的主机名在网络上可解析,否则使用IP地址) 它会提示你输入Ubuntu用户的密码,然后自动将公钥添加到Ubuntu服务器的~/.ssh/authorized_keys文件中。 - 方法2:手动复制 在Windows上,使用PowerShell查看公钥内容: cat ~/.ssh/id_rsa.pub 复制输出的内容。 然后通过SSH登录Ubuntu服务器(使用密码): ssh username@ubuntu_hostname 在Ubuntu上,确保~/.ssh目录存在(如果没有则创建): mkdir -p ~/.ssh chmod 700 ~/.ssh 将公钥内容追加到~/.ssh/authorized_keys文件: echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys 然后设置权限: chmod 600 ~/.ssh/authorized_keys 第三步:配置Windows的SSH客户端以使用主机名 - 如果Ubuntu的主机名在网络上不能被DNS解析,我们需要在Windows的hosts文件中添加一条记录。 打开C:\Windows\System32\drivers\etc\hosts(用管理员权限的文本编辑器),添加: ubuntu_ip_address ubuntu_hostname 保存文件。 - 可选:配置SSH客户端配置文件(便于使用别名等) 在Windows的.ssh目录(C:\Users\你的用户名\.ssh)下创建config文件(没有后缀),添加: Host ubuntu_alias # 自定义别名,可选 HostName ubuntu_hostname # 或Ubuntu的IP User username IdentityFile ~/.ssh/id_rsa # 指定私钥文件 这样以后就可以用:ssh ubuntu_alias 来登录。 第四步:测试免密登录 在Windows的PowerShell中输入: ssh username@ubuntu_hostname # 或者用上面配置的别名 如果配置正确,应该不需要输入密码就能登录。 注意:Ubuntu服务器上需要确保SSH服务允许公钥认证(默认是允许的)。配置文件/etc/ssh/sshd_config中应有: PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 修改后需要重启SSH服务:sudo systemctl restart ssh 另外,确保Ubuntu的防火墙允许SSH连接(默认端口22): sudo ufw allow 22 如果遇到问题,可以检查Ubuntu上的日志:/var/log/auth.log 引用说明: 根据引用[3],确保Ubuntu上已安装并运行SSH服务:sudo apt update && sudo apt install openssh-server -y 根据引用[1],如果Ubuntu主机名需要修改,可以参考优雅修改主机名的方法(虽然本问题不涉及修改主机名,但主机名的正确性很重要)。 相关问题: §§相关问题§§ 1. 如何修改Ubuntu 24.04的主机名(hostname)? 2. 如何配置Ubuntu 24.04的SSH服务以增强安全性(例如禁用密码登录)? 3. 在Windows上如何生成和管理多个SSH密钥对? </think>### Windows系统到Ubuntu 24.04.1使用主机名实现SSH免密登录的方法 以下是实现SSH免密登录的完整流程,结合引用内容进行优化: #### 步骤1:Ubuntu端准备(需在Ubuntu服务器操作) 1. **安装SSH服务** ```bash sudo apt update && sudo apt install openssh-server -y # 引用[3] sudo systemctl enable --now ssh ``` 2. **确认主机名** ```bash hostnamectl # 显示当前主机名(如ubuntu-server) ``` 如需修改主机名: ```bash sudo hostnamectl set-hostname your-new-hostname # 引用[1] ``` 3. **防火墙放行SSH** ```bash sudo ufw allow 22 # 引用[2] ``` #### 步骤2:Windows端操作 1. **生成SSH密钥对** 在PowerShell中执行: ```powershell ssh-keygen -t ed25519 # 默认保存到C:\Users\<用户名>\.ssh\ ``` 2. **配置主机名解析** 编辑 `C:\Windows\System32\drivers\etc\hosts` 文件(需管理员权限),添加: ``` <Ubuntu的IP地址> <Ubuntu主机名> # 例:192.168.1.100 ubuntu-server ``` 3. **复制公钥到Ubuntu** ```powershell # 替换username和hostname scp C:\Users\$env:USERNAME\.ssh\id_ed25519.pub username@hostname:~/ # 使用配置的主机名 ``` #### 步骤3:Ubuntu端密钥配置 ```bash mkdir -p ~/.ssh chmod 700 ~/.ssh cat ~/id_ed25519.pub >> ~/.ssh/authorized_keys # 添加公钥 chmod 600 ~/.ssh/authorized_keys rm ~/id_ed25519.pub # 清理临时文件 ``` #### 步骤4:Windows端测试连接 ```powershell ssh username@hostname # 使用配置的主机名 ``` ✅ 成功标志: - 首次需确认指纹(输入yes) - 后续连接无需密码即可登录 #### 关键配置注意事项 1. **权限要求** - Ubuntu的 `.ssh` 目录权限必须为 `700` - `authorized_keys` 文件权限必须为 `600` - 权限错误会导致认证失败[^2] 2. **安全性增强** 在Ubuntu的 `/etc/ssh/sshd_config` 中添加: ```conf PasswordAuthentication no # 禁用密码登录[^2] PermitRootLogin no # 禁止root登录 ``` 3. **连接故障排查** ```bash # Ubuntu端查看日志 tail -f /var/log/auth.log # 监控SSH连接尝试 ``` > ⚠️ **重要**: > - 确保Ubuntu主机名在Windows的hosts文件中正确映射 > - 若使用虚拟机,确认网络模式为桥接(Bridged)[^4] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值