SSH

SSH默认端口是 22,安全协议版本是 SSH2。 SSH2 支持 RSA 和 DSA 密钥

  • DSA: 数字签名,digital signature Algorithm
  • RSA: 既可数字签名又可加密

服务器端主要包含 SSH 连接和 SFTP 服务器。服务端的进程名为 sshd。由 openssh(提供ssh服务) 和 openssl(提供加密的程序) 组成。

客户端包含 SSH 连接命令和远程拷贝 SCP 命令等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
安装
ubuntu
sudo apt-get install openssh-server

查看帮助
man ssh

查询openssl软件
rpm -qa openssh openssl

查询 sshd 进程
ps -ef | grep ssh
ps -e |grep ssh

查看 ssh 端口
netstat -lntup | grep ssh
ss | grep ssh
netstat -a | grep ssh

查看22端口有没有开/ssh服务有没有开启
netstat -lnt | grep 22

查看端口连接
netstat -an | grep EST

判断物理链路是否通
ping 192.168.31.145

关闭
service sshd stop

开启
service sshd start

停止进程后重启
service sshd reload

杀掉进程后重启
service sshd restart

密钥

1
2
3
4
5
6
7
8
9
10
11
生成密钥
$ ssh-keygen
$ ssh-keygen -t dsa
$ ssh-keygen -m PEM -C "ip"
$ ssh-keygen -m PEM -C "287001165@qq.com"
$ ssh-keygen -m PEM -t shanti -C "287001165@qq.com"

将公钥传送到远程主机上
$ ssh-copy-id user@host -p port
$ ssh-copy-id -i id_dsa.pub user@host -p port
$ ssh user@host -p port 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

登录

1
2
3
4
5
远程登录,将公钥复制到目标主机上后即可免密登录
$ ssh user@host -p port

首次登陆免输入yes登陆
$ ssh user@host -o stricthostkeychecking=no

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
进入目录
$ cd ~/.ssh

查看私钥
$ cat ~/.ssh/id_rsa

查看公钥
$ cat ~/.ssh/id_rsa.pub

查看 ssh 的秘钥目录
$ cat ~/.ssh/known_hosts

查看授权登录的主机公钥
$ cat ~/.ssh/authorized_keys

查看配置文件
$ cat /etc/ssh/sshd_config

配置别名
$ vim ~/.ssh/config
Host a
HostName host
User user
Port port
$ ssh a

远程操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
列出远程文件
$ ssh a 'ls -ltr /root'

打印远程时间
$ ssh a 'date'

打印远程日历
$ ssh a 'cal'

将本地的 Music 文件夹复制到远程 $Home 目录下
$ tar czv Music | ssh a tar xz

将远程 $Home/backup 文件夹复制到本地当前目录
$ ssh a tar cz backup | tar xzv

远程登录后执行某个命令
$ ssh user@host 'ls /root'

远程登录后执行某个脚本
$ ssh user@host -t 'sh /ftl.sh'
作者

Shanti

发布于

2016-03-12

更新于

2022-09-16

许可协议