yhli0906的个人博客分享 http://blog.sciencenet.cn/u/yhli0906

博文

MobaXterm及OpenSSH配置说明

已有 21447 次阅读 2019-3-13 15:39 |个人分类:计算机软件|系统分类:科研笔记

做计算的人,每天都需要借助SSH客户端和服务器打交道。常见的SSH客户端有PuTTY、SmarTTY、SecureCRT、XShell和MobaXterm等。几套软件用下来,个人觉得MobaXterm最好用。MobaXterm其实是安装了OpenSSH和X server的Cygwin,因此可以和虚拟机中的Linux共享一套配置信息。配置信息都是明文文件,不涉及注册表,可以直接复制到另一台计算机上使用。这些优点极大地降低了配置和迁移成本。在这里分享一下自己打磨MobaXterm的一些心得,欢迎大家指正。


下载及安装

MobaXterm免费版下载地址为https://mobaxterm.mobatek.net/download-home-edition.html,有绿色版(portable)和安装版(installer)两种。为便于在不同计算机间迁移安装目录和配置文件,建议下载绿色版。

图片.png

下载完成后解压到安装目录(目录名中最好不要有空格和中文字符)。本例中解压到D:\Network\MobaXterm_Portable_v10.9,解压后可以看到这两个文件

图片.png

然后把配置文件中的home目录和MobaXterm.ini复制到安装目录。打开MobaXterm.ini,找到这两行

图片.png

确保红色线框内部分和安装目录一致。至此安装和初步配置已完成。若升级MobaXterm,需重新检查这两行设置。


配置免密码登录(无中转节点)

如果想登录到某台服务器提交计算任务,又不想每次都输密码,这时可改用密钥认证。以配置到hpc的密钥认证为例,首先生成一对密钥(公钥+私钥):

    切换到~/.ssh目录

    运行ssh-keygen命令,其中-f参数指定生成的密钥文件名前缀,建议用用户名-主机名方式命名,中间可以一路回车

    ls命令可以看到生成了yhli-hpcyhli-hpc.pub两个文件;yhli-hpc.pub是公钥,需要安装到待登录的服务器,丢失之后还可以从私钥重新生成;yhli-hpc是私钥,一旦丢失,后果很严重,所以要妥善保管并及时备份

2.1.png

然后用ssh-copy-id命令把公钥安装到要登录的服务器上(打码部分为主机名或IP地址,-i参数后指定公钥名,加不加.pub均可)

2.2.png

最后修改~/.ssh/config,告诉ssh程序这台服务器的标识 (Host)、主机名或IP地址(HostName)、登录时所用账户(User)和密钥文件(IdentityFile)

2.3.png

如果要运行XCrySDenp4vasp等有图形界面的程序,还要添加下面这两行

2.4.png

至此配置结束。再登录这台服务器,可以看到已经无需输入密码

2.5.png

从本地往服务器上传文件,可以用scp命令

2.6.png

桌面上的各项在Desktop目录下,其它盘上的文件则表示为/cygdrive/盘符/目录/文件名。

从服务器下载文件同理

2.7.png

如果服务器是超算中心的登录节点,为避免网络不稳定导致传输失败,可改用rsync命令,命令格式为“rsync –azP 用户名@主机名:文件名 本地目录” 和“rsync –azP 本地文件 用户名@主机名:文件名”。rsync支持断点续传、跳过已下载文件和md5验证,但传输速度比scp慢。


配置免密码登录(有中转节点)

如果有一个自己搭建的集群,其中有一台登录节点hpc,还有很多计算节点nxx。每个用户必须先登录到hpc后,再登录到计算节点提交计算任务。第二节的设置解决了免密码登录hpc的问题,但由hpc登录计算节点仍需输入密码。

 

对此最简单的解决方案就是在hpc上重复第二节的设置,生成密钥后再把公钥安装到计算节点上,然后配置~/.ssh/config。但这种方案有致命的缺陷,就是一旦登录hpc的密钥或者密码泄露,剩下的节点就门户大开了。

 

更安全的解决方案是在本地再生成一对密钥,将公钥通过hpc安装到计算节点上,将私钥托管给ssh-agent,再配置~/.ssh/config,让hpc转发来自计算节点的密钥认证请求。

 

以配置到n76的密钥认证为例,首先新生成一对密钥yhli-n76yhli-n76.pub,具体操作不再赘述,然后把yhli-n76.pub通过hpc安装到n76

3.1.png

3.2.png

接着退出hpc修改配置文件~/.bash_profile,将私钥托管给ssh-agent

3.3.png

再修改~/.ssh/config,告诉hpc转发认证请求

3.4.png

最后重新打开一个MobaXterm标签(~/.bash_profile中改动重新登录后才能生效),再次登录n76,可以发现已经不用输入密码

3.5.png


配置计算节点间免密码登录

经过第三节的配置,由hpc登录各计算节点已无需输入密码。但有时需要从某个计算节点直接登录或者把文件发送到另一个计算节点,而不借助hpc中转。这种需求也可用ssh-agent满足。

 

假设两台计算节点分别为n76n77,分别配置好了免密码登录,并且私钥均托管给了ssh-agent登陆hpc修改~/.ssh/config文件,告诉n76n77转发认证请求

4.1.png

这样便可在n76n77间无密码互传文件了。


本地端口转发

经过第四节的设置,计算节点间已经可以免密码直传文件,但本地服务器和计算节点间传文件仍需借助hpc中转。用本地端口转发可简化操作

5.1.png

该命令将计算节点n76(集群内网ip 192.168.0.76)的22端口,以hpc为中转节点,映射为本地服务器的9022端口。通过9022端口登录本地服务器,实际上登录的是n76。用scp命令传输文件同理。


其它便捷设置

~/.bashrc里做了一些alias,并设置了自动补全

6.1.png

只需输入“s主机名”(shpc)便可直接登录hpc。输入sshscprsync命令后,按Tab键可以自动补全主机名。


MobaXterm配置文件.7z



https://blog.sciencenet.cn/blog-2909108-1167310.html

上一篇:Wannier90输入文件中num_wann, num_bands, 和energy window等参数设置规则
下一篇:点评常见的SSH客户端
收藏 IP: 121.249.15.*| 热度|

1 唐刚

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-2 00:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部