生物信息基础(一):SSH应用,怎么优雅地登录远程服务器?
- 雪夜
- 2025-09-03
- 热度
作为一名生信工程师,日常工作离不开与服务器的交互,如何高效地登录到远程服务器是必备技能。通常有以下两种登录方法:
通过专用软件登录,常见的有:Xshell,一个收费软件(支持平台:Windows, Mac, Linux等);SecureCRT,另一个收费软件(仅支持Windows)。通过终端利用SSH连接,这种方法的前提是你使用的是Unix-like系统,如:Mac,可以使用自带终端或iTerm2(推荐);Linux(如Ubuntu, Centos等);Windows 10可以通过安装Ubuntu子系统来实现(具体安装方法可通过百度搜索),推荐使用自带的Windows Terminal。本文将重点介绍一种优雅的,通过SSH实现免密登录远程服务器的方法。
1 什么是SSHSSH的全称是Secure Shell,由IETF的网络工作组(Network Working Group)制定,是基于应用层的安全协议。
SSH是一种当前较为可靠的,为远程登录会话及其他网络服务提供安全性的协议。通过SSH协议,可以有效防止在远程管理过程中信息泄露。
在不同主机间进行安全通信时,SSH认证有以下两种方式:
a. 基于密码的认证:每次登录都需要输入用户名和密码,由于密码在网络上传输,存在被攻击的风险;
b. 基于密钥的安全认证:配置后可以实现免密登录,这种方式更加安全和便捷——无需在网络上传递口令,只需一次配置。常见的GitHub网站的SSH方式就是通过密钥进行的。
2 SSH登录命令在终端中输入以下命令,其中
@符号前面的
username是用户名,后面的
host是远程主机的
IP地址:
$ssh username@host
3 配置SSH免密登录生成密钥对,在终端中输入如下命令,注意美元符号
$代表命令提示符,下同。
$ssh-keygen
按回车键确认,一路回车,在
~/.ssh目录下会生成两个文件:
id_rsa(私钥,存放在本地机器上)和
id_rsa.pub(公钥,存放在要远程登录的机器上)。
然后通过密码形式登录目标服务器,进入
~/.ssh目录,新建一个名为
authorized_keys的文件,将
id_rsa.pub中的内容拷贝到其中。
使用
ssh命令登录时,如果仍然需要输入登录密码,说明文件权限配置不正确。
a.
.ssh目录及其内部的公钥、私钥文件,当前用户至少需要执行权限,其他用户最多只能有执行权限;
b. 对于普通用户,建议设置成600权限:
$chmod 600 id_rsa
$chmod 600 authorized_keys
c. 对root用户,建议设置成644权限:
$chmod 644 id_rsa
$chmod 644 authorized_keys
完成上述步骤后,再次通过
ssh命令远程登录服务器,以及本地电脑与服务器之间互相拷贝文件时,都不再需要输入密码。
顺便介绍一下用于在机器间拷贝文件的
scp命令:
将本地文件拷贝到服务器
$scp file.txt username@host:/home/username/file.txt,这个命令会将本地电脑上的
file.txt文件拷贝到服务器上的
/home/username/目录下。
将服务器文件拷贝到本地
$scp username@host:/home/username/file.txt file.txt,这个命令会将服务器上的
file.txt拷贝到本地电脑的当前目录下。
正所谓“工欲善其事,必先利其器”,虽然登录是小事,但却是每日的必需。