使用ssh连接远程服务器
通过ssh远程登录linux服务器,如果想执行一个运行时间比较长的任务,比如下载大文件,在任务执行期间还想做别的事情,可以让命令在后台执行,只需要在命令后面加个&就可以了。
由于后台进程不像守护进程,没有完全脱离终端,所以如果命令有输出的话,屏幕是会看到的,很容易对屏幕造成干扰。
可以将输出重定向到一个文件,如果对输出不感兴趣,也可以将输出重定向到null设备。
如果在任务执行期间,ssh远程连接断开了,这时候这个任务也就挂了,所以需要加上nohup,这样即使ssh连接断开,任务也不会挂掉。完整命令如下:
sudo nohup wget -c 下载链接 > downloadlog.txt &
或者不关心任务输出:
sudo nohup wget -c 下载链接 > /dev/null 2>&1 &
1. 连接远程服务器
ssh 用户名@服务器ip地址 -p 端口号
例如:
ssh syc@192.168.1.123 -p 123
可能会出现提示是否确认连接,输入yes后enter
再输入密码enter即可
2. 断开服务器连接
一段时间不使用会自动断开连接,也可手动断开连接
输入logout
或
Ctrl + D
默认配置
Windows下有很多SSH工具。在这里我是用的是Putty。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH连接服务器的命令如下:
ssh IP地址
1
一般来说为了安全性考虑,端口号等一些参数并不会使用默认值。这样的话命令就变成这样:
ssh 用户名@IP地址 -p 端口号
1
如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。
密钥登录
每次登录SH都需要输入密码很麻烦,而且可能不太安全。SSH还能使用另外一种登录方式,也就是使用密钥登录。
这种登录方式需要客户端生成一堆公钥私钥对,然后将公钥添加到服务器中,这样下次就可以直接登录了。
首先生成SSH密钥,依照提示输入信息即可。默认生成在用户主目录中的.ssh文件夹中。带pub的是公钥,接下来需要添加到服务器中。
ssh-keygen
然后将本地公钥添加到服务器中,需要使用另一个命令:
scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径
然后登陆服务器,找到复制进去的公钥,将公钥名字改为authorized_keys并添加到对应的.ssh文件夹中。
然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。