记录 SSH 一些使用方法
记录如何使用 SSH RSA 私钥登录服务器,包括 Windows、Linux 客户端操作以及 Linux 服务端操作。
Client 端
Windows
安装
OpenSSH Client
和OpenSSH Server
Powershell(管理员)中输入:
1
Start-Service sshd
命令行中输入:
1
ssh Frank@localhost
测试连接成功,但需要输入密码。
通过 RSA 私钥登录:
1
ssh-keygen -t rsa
在
~/.ssh
目录下得到id_rsa.pub
公钥和id_rsa
私钥。将
id_rsa.pub
中的内容复制到 Server 端的~/.ssh/authorized_keys
文件中。提供一个可行的方法:1
2
3
4
5# 1. 直接通过 SSH 连接 Server 端
ssh <user>@<hostname>
# 2. echo 的方式加入到 ~/.ssh/authorized_keys 文件中
echo <content_of_id_rsa_pub> >> ~/.ssh/authorized_keys在
.ssh/
目录下新建文本文件config
,内容如下:1
2
3
4
5Host <host>
HostName <hostname> # ip address or domain
User <user>
PreferredAuthentications publickey
IdentityFile <.ssh/id_rsa>验证连接:
1
ssh <host>
当所有操作正确完成后,连接成功。
Linux
所有操作与 Windows 几乎相同,在复制
id_rsa.pub
公钥的时候,还可以通过以下方式:1
ssh-copy-id -i <~/.ssh/id_rsa.pub> <user>@<hostname>
Server 端
要注意的是
.ssh/
目录下的文件权限,通过chmod
命令修改。
安装
openSSH
:1
sudo apt install openssh-server
启动:
1
/etc/init.d/ssh start
使用
vim
打开/etc/ssh/sshd_config
,添加以下内容:1
2
3AuthorizedKeysFile .ssh/authorized_keys
PubkeyAuthentication yes通过
ssh-keygen
工具生成.ssh
目录。如果
.ssh
目录下没有authorized_keys
文件,创建一个:1
touch ~/.ssh/authorized_keys
将
服务器自己的公钥
和远程登录机器对应的公钥
复制到authorized_keys
文件中:1
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
修改目录权限:
1
2
3
4
5
6
7# ~: 750
# ~/.ssh: 700
# ~/.ssh/*: 600
# ~/.ssh/config: 700
chmod 700 ~/.ssh
chmod 600 .ssh/authorized_keys理论上可以运行成功。
管理会话 —— screen
管理会话,SSH 时断开连接也不中断正在运行的进程,重新连接 SSH 后可以恢复。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21# 安装 screen
sudo apt install screen
# 新建 screen
screen -S <name>
# 进入 screen
screen -r <name>
# 退出当前 screen
# 在当前 screen 下
Ctrl+A,Ctrl+D
# 显示 screen list
screen -ls
# 删除指定 screen
# 在当前 screen 下
Ctrl+D
# 不在当前 screen 下
screen -S <name> -X quit