如何使用SSH来远程连接电脑
本篇文章主要是描述如何使用
SSH
来远程连接
Linux
主机(Ubuntu)的用户,也适用于其他的Linux发行版。
1. 客户端安装SSH
1.1 Ubuntu
sudo apt install SSH
1.2 Windows
Windows 10 1809默认安装了OpenSSH
,无需安装。
2. 服务器安装SSH-server
由于安装方式和第一步一样,这里就之列出Ubuntu
下的安装方式。
sudo apt install SSH-server
PS:到这里已经可以连接了,下面是使用SSH免密登录,可以使用 Ssh 用户名@服务器地址
来连接服务器
3. 客户端生成公私钥
ssh-keygen -t rsa
文件位置在用户家目录下,如Ubuntu
下就在~/.ssh
下,由于是隐藏文件,请打开显示隐藏文件查看。
4. 上传公钥到服务器
ssh-copy-id -p 22 用户名@服务器IP地址
提示授权时 输入yes回车,然后提示输入服务器用户的密码。 手动复制到服务器上也行。
手动复制如下,
将客户端的
.ssh
文件夹下的id_rsa.pub
文件内的内容复制
粘贴到服务器端的.ssh
文件夹下的authorized_keys
文件内。
如果服务器端authorized_keys
文件不存在,请自行创建。
5. 连接服务器
ssh 用户名@服务器地址
6. 给服务器取别名,免除每次要输入地址
touch ~/.ssh/config
vim ~/.ssh/config
然后在文件里输入
Host 别名
HostName 服务器IP地址
User 你要连接的服务器上的用户名
Port 22
然后客户端使用ssh 别名
即可连接服务器。
其实就是使用别名来代替用户名@IP这一串字符,22是SSH默认使用的端口号,不建议修改。
7. 文件传输
- 传文件的话,输入
scp 文件 用户名@域名/ip:服务器上的路径
如果使用config文件配置过名称后,可以使用
scp 文件 别名:服务器上的路径
- 同理,传送文件夹
scp -r 文件夹 用户名@域名/ip:服务器上的路径
- 下载远程文件
scp 用户名@域名/ip:远程文件的路径 本地路径
- 下载远程文件夹
scp -r 用户名@域名/ip:远程文件夹的路径 本地路径
PS:如果需要连接root
账号,需要修改服务器/etc/ssh/sshd_config文件
,然后输入service ssh restart
重启SSH服务。
#PermitRootLogin no 改为 PermitRootLogin yes;
8. 可能会用到的一些SSH命令
//验证命令
ssh -T 用户名@域名/ip
// 如果连接的主机系统发生了变化,例如嵌入式重新烧录了系统镜像
// 使用ssh连接会失败,提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
// 此时执行下面的命令后在使用ssh连接即可。
ssh-keygen -R HostName/目标ip