使用远程服务器的几个技巧

生信草堂

将会与更多的优秀微信公众号合作,把最优秀的微信推文呈现给大家,希望可以帮助读者更多的了解生信技术,培养和提高读者的生信分析能力!

号外,号外,号外

你想和生信分析大神做好朋友么?

你想认识更多爱好生信分析的小伙伴么?

你想让自己的生信分析走上快车道么?

那就赶快加入我们的生信交流微信群吧!

正确加入我们的模式是:

添加我们的微信bioinformatics88为好友

标注“加入生信草堂交流群

在群里请大家注明自己本名,单位,研究领域

便于小编管理

如果你有一台高性能的个人PC,那么绝大部分任务都能在本地解决。但是更为常见的情况是,你买了一台小型服务器或者有专门的服务器平台,然后在本地进行访问,那么这里有几个小技巧,你可以了解下。

保存常用SSH主机,避免重复输入

Linux下访问远程服务器的方法基本就是使用SSH(secure shell)。SSH其实是一种网络协议,用来计算机之间的加密登陆,保证传输过程中即便信息被截获了也无法解析出原始信息。SSH作为一种协议有多种使用方法,在Linux里面是OpenSSH,在Windows里面可以用putty或者Xshell。不过这里仅仅讨论Linux 里面的ssh。在Linux中访问远程主机的时候,大家肯定对如下指令不陌生:

其中指定端口号,如果远程服务器没有特殊说明,一般默认都是22,所以可以省去. 后面为用户@IP地址。第一次访问的时候会问你是否要将该主机的公钥加入信任名单中,当然是选了。

# 使用vi编辑器# vi ~/.ssh/configHost xzg HostName 10.10.87.36 User xuzhougegn Port 22

然后就能以访问远程主机,而需要输入全部信息,又累还容易出错。

无需密码认证,快速登陆

上面的技巧使得你访问的时候不需要输入主机全称,但是依旧需要输入密码。如果密码比较长,那么人就容易出错,而且Linux输密码的时候啥都看不见,你都不知道自己输了多少个字符,如果你的电脑只有自己用,完全连密码输入这一步都可以省呀。

避免每次都要密码认证的方法就是使用SSH公钥。当你把个人电脑的SSH公钥存放到远程服务器的时候,远程服务器就完全信任了你,两个人之间就再也没有了隔阂。

首先是用创建密钥(密码为空时,后续登陆时才能不需要输入密码)

$ ssh-keygen -b 2048Generating public/private rsa key pair.Enter file in which to save the key (/home/xzg/.ssh/id_rsa):/home/xzg/.ssh/id_rsa already exists.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/xzg/.ssh/id_rsa.Your public key has been saved in /home/xzg/.ssh/id_rsa.pub.The key fingerprint is:SHA256:/1dusQI7WRUfsf9pG3CjCstIzGHPdPyRCO+zVF/efVM xzg@DESKTOP-CNF0I9CThe key's randomart image is:+---[RSA 2048]----+ .. o. . .+ + . ..o oS. = =.oE + =.o.o.*oX + +.+=o OO . o +=+.o.B . o oo..o +----[SHA256]-----+

然后是将自己的ssh公钥添加到远程服务器的.这个方法比较多

ssh-copy-id

$ ssh-copy-id xuzhougegn@10.10.87.36/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/xzg/.ssh/id_rsa.pub"/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysxuzhougegn@10.10.87.36's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'xuzhougegn@10.10.87.36'"and check to make sure that only the key(s) you wanted were added.

用显示,然后复制到远程服务器的中

任务挂起,安心关闭终端

远程操作时,一旦终端关闭,所有这个终端运行的进程都会收到信号,然后这些程序就会立即退出。如果你的命令需要运行好几个小时或者好几天,你肯定不愿意一直开着终端,因为网络问题功亏一篑。解决方法也是有的,而且还有好几种,这里就说说和

故名思意,就是不要hup,即能够捕捉到终端发出的SIGHUP信号并无视他,就不必担心自己的命令被终端关闭了。

# 实例nohup bash snp_calling.sh > output.txt

如果你不知道自己的命令有多久,所以不知道要不要输入nohup, 其实用(或tmux)效果更好

# 开启一个screenscreen -S hisat2# 使用ctrl +a ctrl +d 挂起screen -list # 查看运行的sreenThere is a screen on: 46953.hista2 (Detached)1 Socket in /var/run/screen/S-xuzhougegn.# 继续之前的screenscreen -r hisat2

总结

本文介绍三种连接远程服务器的小技巧

利用ssh config添加常用服务器

利用ssh公钥避免重复输入密码

利用screen/nohup 长时间运行程序

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171218G0IGW400?refer=cp_1026

扫码关注云+社区