mac 远程连接Linux服务器


注意:这是本人写的第二篇文章,难免出错,欢迎大家批评指正


前言

本文是为后续的项目:C++实现从0到Reactor服务器做铺垫,完成基础环境的搭建


一、服务器的选择

没区别,哪家便宜买哪家,我买的是阿里云的,注意阿里云有一个新用户 99/年的活动,还有个三个月试用活动

二、mac 终端连接服务器

1. 终端选择

你可以选择可视化终端如 VNC、SecureCRT 等。我用的是 iTerm2。原因见iTerm2的feature
当然,iTerm2 的强大之处在于它的自身特性与扩展性,需要一些配置,详细可见我的另一篇文章:配置iTerm2

2. 连接远程服务器

  • 原生 ssh
ssh [用户名]@[服务器IP或域名]

之后,你可能需要输入密码来完成认证过程。如果你希望避免每次连接都输入密码,你可以使用SSH密钥认证。为此,你需要生成一个SSH密钥对,并将公钥复制到服务器上的 ~/.ssh/authorized_keys 文件中

生成SSH密钥对的命令:

ssh-keygen -t rsa -b 4096

#-t即指定密钥的类型,密钥的类型有两种,一种是RSA,一种是DSA:	
#RSA:RSA加密算法是一种非对称加密算法,是由三个麻省理工的牛人弄出来的,RSA是他们三个人姓的开头首字母组合。
#DSA:Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种。
#ssh-keygen默认使用rsa密钥,所以不加-t rsa也行,如果你想生成dsa密钥,就需要加参数-t dsa。

#-b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。命令中的4096指的是RSA密钥长度为4096位。
#DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。

生成密钥后,将公钥内容(默认位于 ~/.ssh/id_rsa.pub)复制到服务器的 ~/.ssh/authorized_keys 文件中。可以使用 scp 命令复制公钥:

scp ~/.ssh/id_rsa.pub [用户名]@[服务器IP或域名]:~/.ssh/authorized_keys

这样就可以不输入密码直接通过SSH连接到服务器

  • 利用 iterm2 profile
  1. 创建脚本
    在目录:/usr/local/bin 下创建脚本 sshlogin.sh
#!/usr/bin/expect

# lindex $argv 0 端口号
# [lindex $argv 1]:服务器用户名
# [lindex $argv 2]:服务器IP地址
# [lindex $argv 3]:服务器密码

set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
        "(yes/no)?"
        {send "yes\n";exp_continue}
        "password:"
        {send "[lindex $argv 3]\n"}
}
interact

注意要修改权限

chmod 777 sshlogin.sh

可以先测试一下

login.sh 22 root 110.110.110.110 '123456'
  1. 配置 iTerm2
    在这里插入图片描述
    名字随便起,ssh端口默认22,具体可以查看服务器的 /etc/ssh/sshd_config 文件
    然后,就可以这样一键登陆服务器了
    在这里插入图片描述

注意
用SSH登录到服务器的时候,由于默认的连接超时时间很短,经常需要断了后再连接,比较麻烦。可以通过设置linux ssh配置解决

  1. 打开配置文件
vim /etc/ssh/sshd_config
  1. 搜索并修改(没有的话在末尾添加):
ClientAliveInterval 60
ClientAliveCountMax 10

#ClientAliveInterval  每隔多少秒给SSH客户端发送一次信号;
#ClientAliveCountMax  超时重连的次数
  1. 重启ssh服务
service sshd restart 

三、文件传输

使用 trzsz 在本地和服务器之间进行文件传输,参考这两篇文章

Macos iterm2快速上传下载文件到远程服务器
Trzsz-iTerm2 安装文档

四、VSCode连接服务器

为了写代码更加方便,我们可以使用 VSCode 连接服务器,参考视频

VSCode配置

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐