使用ssh key远程登录Linux

本文介绍了如何通过ssh-keygen命令生成SSH密钥,并详细解释了密钥的用途及如何利用这些密钥进行免密码登录Linux或Mac客户端主机。此外还提供了Windows环境下使用SSH密钥的方法。
第一步:产生key 
ssh-keygen -b 密匙长度 -t 密匙类型 
密匙类型可以是:rsa1 (对应SSH1 RSA)、rsa 和 dsa (对应SSH2)如: 
Linux代码  收藏代码
  1. ssh-keygen -b 1024 -t rsa  

默认在~/.ssh下会生成 id_rsa和 id_rsa.pub 
  id_rsa是private key, 
  id_rsa.pub是public key (密钥类型 RSA,密钥长度 1024)。 
  把id_rsa.pub 复制为authorized_keys(仍然在.ssh目录) 


第二步:设置Linux或Mac客户端主机 
复制私钥到客户linux机 
scp server_hostname:/home/username/.ssh/remmot_id_rsa/id_rsa
接下里就可以用ssh直接执行远程linux命令了 
ssh -i /home/username/.ssh/remmot_id_rsa/id_rsa  username@server_hostname <linux command> 

如果私钥复制到客户Linux/Mac机的家目录的.ssh子目录(名字保持不变),则不需要-i参数。 

window登录可以使用工具选择sshkey

<think>嗯,用户想了解如何通过SSH Key实现远程登录到服务器,需要教程。首先,我需要整理一下已有的引用内容,看看里面有没有相关的步骤。引用的资料里提到了生成密钥对、上传公钥到服务器、配置服务器以及客户端连接这几个步骤。比如引用3提到生成id_rsa和id_rsa.pub,然后上传公钥到服务器的authorized_keys文件。引用2和5也提到了生成SSH Key和登录的过程。 用户可能需要详细的步骤说明,所以应该分步骤来写。第一步生成密钥对,使用ssh-keygen命令,然后处理公钥上传的部分。这里要注意权限问题,比如服务器上的.ssh目录和authorized_keys文件的权限设置,否则可能会导致连接失败,比如引用1提到的“Server refused our key”问题。 接下来是服务器配置部分,可能需要修改sshd_config文件,确保PubkeyAuthentication是yes,并且检查是否允许root登录或者其他设置。引用4提到了查看SSH端口的上下文,可能和安全策略相关,但用户可能更关心基本的配置步骤。 然后是关于客户端如何使用不同的工具连接,比如VSCode、Xshell、MobaXterm等,引用1提到了这些工具,但用户的问题可能更关注命令行方式,不过也可以简要提及其他工具作为补充。 最后,常见问题比如权限问题或者配置错误,需要提醒用户检查.ssh目录的权限是否为700,文件是否为600,以及服务器是否重启了ssh服务。引用3和5都提到了这些点。 还需要确保回答符合格式要求,使用中文,行内公式用$...$,独立公式用$$...$$,但这个问题可能不太涉及数学公式,所以可能不需要。然后生成相关问题,比如密钥生成失败怎么办,如何配置多台服务器,权限问题解决等。 检查引用标记是否正确添加,比如生成密钥对的部分引用3,配置服务器部分引用4和5,客户端连接引用1和3。可能需要在每个步骤末尾添加对应的引用标记,确保自然。 最后确保回答结构清晰,分步骤说明,每个步骤有对应的操作命令和注意事项,帮助用户逐步完成配置。同时生成的相关问题要围绕SSH Key配置的常见后续问题,帮助用户深入理解。</think>### 如何通过 SSH Key 实现远程登录服务器? 以下是分步配置和使用 SSH Key 的教程: --- #### **1. 生成 SSH 密钥对** - **本地客户端操作**: 打开终端(Windows 使用 PowerShell 或 Git Bash,Linux/macOS 使用终端),执行命令: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 按提示选择密钥保存路径(默认 `~/.ssh/id_rsa`)和设置密码(可选)[^2][^3]。 - **生成文件**: 在 `~/.ssh` 目录下生成两个文件: - `id_rsa`:私钥(需严格保密,不可泄露) - `id_rsa.pub`:公钥(需上传到服务器)。 --- #### **2. 上传公钥到服务器** - **方法一(推荐)**: 使用 `ssh-copy-id` 命令自动上传: ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip ``` 输入服务器密码后,公钥会自动添加到服务器的 `~/.ssh/authorized_keys` 文件中[^5]。 - **方法二(手动)**: 1. 复制公钥内容: ```bash cat ~/.ssh/id_rsa.pub ``` 2. 登录服务器,编辑 `~/.ssh/authorized_keys` 文件,粘贴公钥内容。 --- #### **3. 配置 SSH 服务器** - **修改配置文件**: 在服务器上编辑 SSH 配置文件 `/etc/ssh/sshd_config`,确保以下参数生效: ```bash PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no # 可选:禁用密码登录以提高安全性 ``` 保存后重启 SSH 服务: ```bash sudo systemctl restart sshd ``` [^4][^5] - **权限设置**: 确保服务器上 `.ssh` 目录权限为 `700`,`authorized_keys` 文件权限为 `600`: ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` [^3] --- #### **4. 客户端连接服务器** - **命令行连接**: ```bash ssh -i ~/.ssh/id_rsa username@server_ip ``` 若私钥路径为默认,可直接用 `ssh username@server_ip`[^3]。 - **工具支持**: - **VSCode**:通过 Remote-SSH 插件,配置 `~/.ssh/config` 文件指定私钥路径[^1]。 - **Xshell/MobaXterm**:在会话属性中选择私钥文件进行认证。 --- #### **5. 常见问题解决** - **“Server refused our key”**: 检查公钥是否正确上传、文件权限设置、服务器 SSH 配置是否启用密钥认证。 - **“Permission denied”**: 确认私钥文件权限是否为 `600`,或检查服务器防火墙是否开放 SSH 端口(默认 22)[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值