如何在本地通过ssh 访问服务器,SSH免密登录通常使用SSH密钥对实现
时间: 2023-12-29 12:03:11 浏览: 90
要通过SSH在本地访问服务器,需要按照以下步骤进行操作:
1. 在服务器上创建一个新的用户,并将该用户添加到sudo组中,以便可以使用sudo命令。
2. 在本地计算机上生成SSH密钥对,可以使用以下命令:
```
ssh-keygen -t rsa
```
该命令将在本地计算机上生成一个公钥和一个私钥。
3. 将本地计算机上的公钥复制到服务器的authorized_keys文件中。可以使用以下命令将公钥复制到服务器上:
```
ssh-copy-id username@server_ip_address
```
其中,username是服务器上的用户名,server_ip_address是服务器的IP地址。
4. 现在可以使用SSH连接到服务器。可以使用以下命令连接到服务器:
```
ssh username@server_ip_address
```
在第一次连接时,SSH将提示您确认服务器的指纹。
一旦连接建立,您将能够在服务器上执行命令,并且您也可以将文件从本地计算机复制到服务器上,反之亦然。
以上就是通过SSH在本地访问服务器的基本步骤。如果您希望实现SSH免密登录,可以在生成密钥对时不设置密码,并将公钥添加到服务器的authorized_keys文件中。这样,您就可以在不需要输入密码的情况下连接到服务器。
相关问题
如何在本地通过ssh 访问服务器,SSH免密登录通常使用SSH密钥对实现known_hosts known_hosts.old 如何生成的
要在本地通过ssh访问服务器,需要进行以下步骤:
1. 在服务器上安装ssh服务,确保其处于运行状态。
2. 在本地电脑上打开终端或命令行窗口,输入以下命令来连接服务器:
```
ssh username@server_address
```
其中,`username`是服务器上的用户名,`server_address`是服务器的IP地址或域名。
3. 如果是第一次连接服务器,会提示是否继续连接,输入`yes`并按下回车键。
4. 如果使用SSH免密登录,可以生成SSH密钥对。在本地电脑上打开终端或命令行窗口,输入以下命令来生成密钥对:
```
ssh-keygen -t rsa
```
然后会提示你输入保存密钥对的文件名和位置。默认情况下,它们会保存在`.ssh`文件夹中,文件名为`id_rsa`和`id_rsa.pub`。
5. 将公钥(`id_rsa.pub`)添加到服务器的`authorized_keys`文件中。可以使用以下命令将公钥添加到服务器:
```
ssh-copy-id username@server_address
```
然后输入服务器密码,就可以将公钥添加到服务器了。
6. 现在,可以使用以下命令进行SSH免密登录:
```
ssh username@server_address
```
系统会自动使用SSH密钥对进行身份验证,而不需要输入密码。
在进行SSH免密登录时,会生成两个文件`known_hosts`和`known_hosts.old`。这两个文件保存了已知主机的公钥信息,用于验证主机的身份。如果主机的公钥发生了变化,就会提示`WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`错误。可以通过删除`known_hosts`文件来解决此问题。删除后,下一次连接服务器时,系统会重新生成一个新的`known_hosts`文件。
vscode连接ssh远程服务器,免密登录
### 配置 VSCode 使用 SSH 连接到远程服务器
#### 安装 Remote-SSH 扩展
为了使 Visual Studio Code (VSCode) 能够通过 SSH 协议连接至远程服务器,需先安装名为 "Remote-SSH" 的官方插件。点击左侧活动栏中的方块图标进入扩展市场,在搜索框内输入 “Remote-SSH”,随后选择由 Microsoft 提供的结果并单击“安装”按钮完成部署[^3]。
#### 创建或编辑 SSH 配置文件
对于 Linux 或 macOS 用户来说,默认情况下会在 `~/.ssh/config` 文件中定义 SSH 主机配置;而对于 Windows 用户,则可能位于 `%USERPROFILE%\.ssh\config` 下。如果该路径下不存在此文件,可以手动创建它。在此文件里添加如下格式的内容:
```bash
Host your_remote_host_name
HostName remote.server.ip.or.domain.name
User username_on_remote_server
IdentityFile ~/.ssh/id_rsa # 私钥位置
```
上述代码段用于指定目标主机名、IP 地址/域名以及登录用户名,并指明私钥的位置以便后续操作能够顺利进行。
#### 设置无密码访问
要实现无需每次输入密码就能自动认证的功能,需要事先准备好公钥与私钥对,并将其放置于本地计算机上适当目录之中。接着把生成好的公钥复制到远端机器上的相应账户下的 `.ssh/authorized_keys` 文件里面去。这一步骤可以通过运行下面这条命令来简化过程(假设已经拥有了一对有效的 RSA 密钥):
```bash
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote.host
```
以上指令会尝试将当前用户的 ID 添加到远程系统的授权列表当中,从而允许基于密钥的身份验证方式生效[^2]。
一旦完成了这些准备工作之后,再次启动 VSCode 并按下快捷键 Ctrl+Shift+P 来调出命令面板,然后依次选取 `"Remote-SSH: Connect to Host..." -> "your_remote_host_name"` 就能轻松建立连接了。
阅读全文