什么是SSH?
简单说,SSH是一种网络协议(安全外壳协议),用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
SSH之所以能够保证安全,原因在于它采用了公钥加密。
整个过程是这样的:
(1)远程主机收到用户的登录请求,把自己的公钥发给用户(2)用户使用这个公钥,将登录密码加密后,发送回来。
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
SSH基本用法
1. SSH远程登陆
口令登录
- 假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。
$ ssh user@host
如:ssh pika@192.168.0.111 - 如果本地用户名与远程用户名一致,登录时可以省略用户名。
$ ssh host - SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用p参数,可以修改这个端口。
$ ssh -p 2222 user@host
或 $ ssh user@host -p 2222
上面这条命令表示,ssh直接连接远程主机的2222端口。
公钥登录
略。。。
2. 使用ssh在远程后台不中断地跑程序
Linux关闭ssh(关闭终端等)后运行的程序或者服务自动停止,如python3 a.py &。
解决:使用nohup命令让程序在关闭窗口(切换SSH连接)的时候程序还能继续在后台运行。
nohup python3 a.py &
nohup
nohup sh create.sh > create.out &
ERROR:nohup: ignoring input and redirecting stderr to stdout
解决方法:nohup sh create.sh > create.out 2>&1 &
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
上述是自己用到的用法,更多用法见https://blog.csdn.net/u013452337/article/details/80847113