1. 安装 ssh 工具
1.1 本地主机
1
| sudo apt install openssh-client
|
1.2 服务器
1
| sudo apt install openssh-server
|
2. 管理 ssh 服务
2.1 查看服务器的 ssh 服务:
2.2 启动服务器的 ssh 服务:
2.3 关闭服务器的 ssh 服务:
2.4 重启服务器的 ssh 服务:
1
| sudo service ssh restart
|
3. 登录远程服务器
3.1 密码登录
其中,user
为远程主机的登录用户名,host
为远程主机 ip 地址。然后终端会显示要求输入远程主机 user
用户登录密码,正确输入密码后进入到远程主机 user
的 $HOME
目录下。
基于密码登录远程主机的原理大致如下:
3.2 免密登录
将本机 ssh-keygen
生成的公匙复制到远程主机上,具体操作如下:
- 查看本地主机是否生成了 ssh-key,如果文件夹不存在或者没有
id_rsa
和 id_rsa.pub
,说明未生成 ssh-key :
- 将本地主机
~/.ssh
下的公匙复制到远程主机的 ~/.ssh
文件夹(没有就创建一个)下并命名为 authorized_keys(具体复制操作参加下文):
1
| scp ~/.ssh/id_rsa.pub user@host:~/.ssh/authorized_keys
|
- 然后终端使用
ssh user@host
就可以直接登录远程主机,不再需要输入密码。
基于密码登录远程主机的原理大致如下:
【注】远程主机如果 .ssh
文件夹是手动创建的,则需要设置权限 700(chmod 700 ~/.ssh
);如果 authorized_keys 文件是手动创建而不是直接复制本地主机公匙,则需要设置权限 600(chmod 600 ~/.ssh/authorized_keys
),否则免密登录可能失败。
4. 操纵远程主机
4.1 复制文件到远程主机
在本地主机终端下,使用 scp
命令:
1 2
| scp filename user@host:dstpath scp -r dirname user@host:dstpath
|
4.2 从远程主机拷贝文件
在本地主机终端下,使用 scp
命令:
1 2
| scp user@host:filename dstpath scp -r user@host:dirname dstpath
|
4.3 退出远程登录
在登录远程主机终端下使用 Ctrl + D
或者 exit
。