如何在本地通过ssh 访问服务器,SSH免密登录通常使用SSH密钥对实现
时间: 2023-12-29 17:03:11 浏览: 31
要通过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`文件。
linux实现ssh免密登录
要在Linux上实现SSH免密登录,你可以按照以下步骤进行操作:
1. 生成SSH密钥对:在本地计算机上打开终端,并运行以下命令生成密钥对:
```
ssh-keygen -t rsa
```
这将生成一个RSA密钥对,包括公钥和私钥。你可以选择使用默认的密钥保存路径和文件名,或者根据需要进行自定义。
2. 将公钥复制到目标服务器:将公钥复制到你希望免密登录的目标服务器上。可以使用以下命令将公钥复制到远程服务器:
```
ssh-copy-id username@remote_host
```
替换 `username` 为你的目标服务器用户名,`remote_host` 为目标服务器的IP地址或域名。
如果 `ssh-copy-id` 命令不可用,你可以手动复制公钥文件的内容到目标服务器的 `~/.ssh/authorized_keys` 文件中。
3. 配置SSH服务器:确保目标服务器上的SSH服务器已正确配置以允许密钥登录。打开目标服务器上的SSH配置文件 `/etc/ssh/sshd_config`:
```
sudo vi /etc/ssh/sshd_config
```
确保以下配置项被启用:
```
PubkeyAuthentication yes
PasswordAuthentication no
```
4. 重新启动SSH服务:保存并关闭SSH配置文件后,使用以下命令重新启动SSH服务:
```
sudo service ssh restart
```
或者,如果你的系统使用 `systemd`,可以使用以下命令:
```
sudo systemctl restart sshd
5. 测试免密登录:现在,你可以尝试使用SSH连接到目标服务器,如果一切设置正确,你应该无需输入密码即可成功登录:
```
ssh username@remote_host
```
替换 `username` 为你的目标服务器用户名,`remote_host` 为目标服务器的IP地址或域名。
这样,你就成功实现了在Linux上的SSH免密登录。请记得保护好私钥文件,不要泄露给他人,以确保系统的安全性。