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'
|