服务器的免密登录和文件传输

在天文学研究中,通常会采用ssh登录服务器,把复杂的计算交给服务器,但是如果你没有进行额外的配置,那么登录服务器,以及和服务器进行文件传输,每次都要输入账号和密码,比较不方便,Windows系统下可以使用MobaXterm,可以直接记住账号密码,登录的时候直接点击,传输文件也可以直接拖拽,但是linux和mac系统下并没有类似的成熟工具(或者说作者不知道),本文介绍一下如何在mac/linux系统下与服务器进行免密登录和文件传输

  1. 使用ssh生成公钥和秘钥

在你电脑中的terminal也就是命令行运行如下命令

bash 复制代码
ssh-keygen -t rsa

这会在.ssh文件夹下生成一个id_rsa文件和id_rsa.pub文件

  1. 把公钥上传到服务器的.ssh文件夹中

先使用scp命令把你的公钥上传到服务器里,也就是id_rsa.pub文件

接下来检查一下你服务器端的账号是否有.ssh/authorized_keys文件,如果有,使用如下命令把id_rsa.pub文件追加到该文件中

bash 复制代码
cat id_rsa.pub >> ~/.ssh/authorized_keys

如果没有.ssh文件夹,就使用mkdir .ssh来建立.ssh文件夹,如果没有authorized_keys,就使用

bash 复制代码
touch .ssh/authorized_keys

建立该文件,然后使用

bash 复制代码
cat id_rsa.pub > ~/.ssh/authorized_keys

把公钥写入.ssh/authorized_keys中,之后保存,退出服务器,以后就可以实现无密码登录和文件传输

  1. ssh配置

完成第1步和第2步之后,虽然不用输密码了,但是你还需要输入账号和服务器的IP,这个问题我们可以通过写ssh的配置文件来实现更加简单的登录和文件传输

在本地的电脑中打开.ssh/config文件,如果没有就新建一个,只要位置和文件名对了就行

在里面写入类似我这样子的配置

这里Host后面是你自己起的一个简称,HostName是服务器的IP,Port是服务器登录的端口,默认是22,如果你的服务器修改过可能不是,可以联系你服务器的管理人员获得IP和Port,User是你在服务器的账号,剩下的不要动,写好后保存退出即可

接下来你登录服务器,只需要在本地电脑上写

bash 复制代码
ssh yuan

即可直接登录服务器,无需再输入额外的任何东西,这里执行后可能会报错,因为有些服务器没有打开X11服务的支持,就会拒绝你的登录,那你就把最后面三行删掉就可以了

如果你想要传输文件,那么只需要执行

bash 复制代码
scp test.py yuan:/home/xushuai

如果下载就是

bash 复制代码
scp yuan:/home/xushuai/test.py /Users/xushuai

无需输入任何其他的东西,只需要写清楚本地和远程的文件位置即可,非常方便

相关推荐
liguojun202511 小时前
篮球馆自动计时收费系统:从规则配置到自动结算的全流程拆解
java·大数据·运维·人工智能·物联网·1024程序员节
Promise微笑12 小时前
红外分辨率 160×120、320×240、384×288 与 640×480实战选型指南
大数据·运维·人工智能·物联网
云飞云共享云桌面13 小时前
单机建模卡顿运维繁琐!中小型机械制造厂云飞云 3D 云桌面落地
运维·服务器·网络·3d·自动化·电脑·负载均衡
zandy101114 小时前
体验家 XMPlus 批量操作与自动化工作流引擎:让大规模运营从手动执行走向规则驱动
大数据·运维·自动化
湿韵轮回14 小时前
LangChain LCEL,用 | 串联AI的魔法语言
服务器·人工智能·langchain
Sagittarius_A*14 小时前
Docker:渗透前置容器化核心基础
运维·安全·docker·容器
网络小白不怕黑15 小时前
监控httpd状态
服务器
阿米亚波16 小时前
【EVE-NG 实战】防火墙基础(VLAN · VRRP · NAT · ACL · 静态路由)
运维·网络·笔记·网络协议·计算机网络·网络安全·运维开发
网络小白不怕黑16 小时前
12.DHCP服务搭建
linux·运维·服务器·网络
日取其半万世不竭17 小时前
云服务器迁移怎么少停机?DNS 切换前后的完整清单
运维·服务器