mac配置ssh连接

mac的ssh

mac的终端自带ssh,如果想使用ssh进行连接,可以

使用密码连接ssh

# 连接ssh默认22端口
ssh root@ip地址

# 如果ssh不是默认的22端口,想自己指定端口,可以使用 -p 命令 例如下面ssh连接2222端口
ssh root@ip地址 -p 2222

当然上述的方法,是通过密码连接,输入了上述指令之后,还需要输入服务器对应的密码

使用密钥连接

当经常需要连接一个服务器的时候,那么每次连接都要输入密码,是否就觉得太过于繁琐了,这里当然就可以使用密钥进行登陆

  1. 首先进入到本地的ssh目录,生成一对属于我们自己的密钥
# 打开mac终端
# 进入ssh目录
cd ~/.ssh/

# 生成属于自己的密钥
ssh-keygen

# 然后将自己的密钥,推送到指定服务器,下面是推送指令,并且会自动推送到服务器对应目录
ssh-copy-id root@ip地址

# 推送成功之后,就可以通过ssh直接连接了,就不会再提示你输入密码了
ssh root@ip地址

上述的方法相对较方便了,但是每次都要输入ip地址,还是很麻烦,这种时候就可以给ip配置一个别名

创建config文件,简化连接操作

# 创建config文件
vim config

创建好了文件之后,进行相关的配置,比如我们刚才将我们本地的密钥,推送到了10.10.100.200,这个ip地址,我们便可以进行如下的配置

Host pcx
Hostname 10.10.100.200
Port 22
User root
IdentityFile ~/.ssh/id_rsa

进行了上述配置之后,就可以使用

# 只需要使用以下指令就可以连接到指定服务器
ssh pcx

当然上面基本上的配置都已经完成,但是考虑到每个都要写Port,User,很麻烦,其实可以把这些抽离出来

抽离写法

# 以下为服务器配置 
Host pcx
Hostname 10.10.100.200

# 以下就是,ssh连接端口不是传统的22,而是6032
Host pcx2
HostName 10.10.100.201
Port 6032

# 以下为抽离的配置 
# Host * :这个的意思是,所有Host以下如果没有配置的话,都走以下配置
# Port : 默认端口为22,如果不是22端口,可以在上面输入 Port 2222 ,自己想要的端口进行配置
# IdentityFile : 默认的我们的密钥文件地址位置在哪儿(也就是我们先开始生成密钥的地址)
Host *
    Port 22
    User root
    ServerAliveInterval 60
    ConnectTimeout 0
    TCPKeepAlive yes
    IdentityFile ~/.ssh/id_rsa

其实config这个配置,我认为最大的作用是,使用跳板机

什么是跳板机呢?

其实跳板机就是,我们想连接到C服务器,但是C服务器不对外网开发,是一个内网环境的服务器,而在这个内网环境的情况下,有一台对外网关机,假设这台网关机为B,我们本机为A,B和C都同样是内网环境,所以B可以直接访问C,而B作为网关机,对外有开放几个端口,比如ssh对应的22端口,当然为了安全考虑,这个22端口可能被修改成了其他。跳板机的意思也就是说,我们可以通过ssh连接B机器,通过B机器为跳板,连接C服务器

具体配置如下

Host kuairui
 HostName 171.217.93.10
 Port 2222
 DynamicForward 10811
 LocalForward 13306 10.10.101.231:3306

上面三点Host,Hostname,Port,和以上相当

DynamicForward 动态代理

DynamicForward:动态代理的核心,暴露本地一个动态代理端口,可以理解为和vpn一样,暴露本地一个本地一个动态代理端口,然后配合Chrome插件SwitchyOmerge,达到游览器实现vpn的效果

具体操作如下

  1. 配置上述的配置
  2. SwitchyOmega的配置,配置一个代理,本地暴露了sock5,代理端口和配置中代理端口一致
    在这里插入图片描述
  1. 当要使用的时候,终端连接进跳板机服务器,然后SwitchyOmega开启代理即可
DLocalForward 定点代理

第一个参数13306,是拉回我本地的端口,后面的10.10.101.231:3306,是网关机访问的ip和端口,将其拉回来

一般来说通过动态代理和定点代理,基本上可以实现我们在家也可以和公司里一样正常办公,比如项目想启动,就将数据库端口定点代理拉回到本地,然后修改配置,就可以运行程序,同时游览器可以查看web情况

修改配置其实就很麻烦了,这种时候可以使用环境变量,环境变量优先于配置文件和配置中心
在这里插入图片描述

<think>好的,我现在需要帮助用户在Mac配置SSH服务。用户可能对SSH不太熟悉,所以我需要从基础开始,逐步引导他们完成配置。首先,我需要回顾已有的引用内容,确保信息准确。 根据引用[1],配置SSH的第一步是启动sshd服务,使用命令`sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist`。这一步是关键,因为如果服务没有启动,用户无法通过SSH连接Mac。另外,可能需要检查服务状态,用`sudo launchctl list | grep ssh`确认是否运行。 接下来,引用[2]提到检查是否存在SSH密钥。用户需要进入`~/.ssh`目录,查看是否有`id_rsa`和`id_rsa.pub`文件。如果存在,可以跳过生成密钥的步骤;否则,需要生成新的密钥对。这部分需要注意指导用户如何打开终端,执行`cd ~/.ssh`,并检查文件是否存在。 如果用户需要生成新的密钥,引用[3]中的命令`ssh-keygen -t rsa -C "邮箱"`是标准的做法。这里需要解释每个参数的作用,例如`-t`指定密钥类型,`-C`添加注释。同时,用户生成密钥后需要将公钥添加到远程服务器(如GitHub),这可能涉及复制`id_rsa.pub`内容到对应平台。 引用[4]提供了一个百度知道的链接,可能包含额外信息,但可能重复已有的步骤。需要确保步骤不重复且逻辑清晰。 用户可能的疑问包括:如何测试SSH连接是否成功?如何解决连接时出现的权限问题?比如,`~/.ssh`目录的权限应为700,私钥文件权限为600,这些细节需要提及,避免连接失败。 另外,配置GitHub的SSH时,用户需要设置用户名和邮箱,如引用[3]中的`git config --global user.name`和`git config --global user.email`,这部分虽然属于Git配置,但和SSH使用相关,可能需要简要说明。 最后,生成相关问题需要考虑用户可能的后续需求,比如连接到其他服务器、处理权限问题、更换密钥等。需要确保问题覆盖常见的使用场景和故障排除。 总结步骤:启动SSH服务 → 检查/生成密钥 → 配置远程服务(如GitHub) → 测试连接。每个步骤需要给出具体命令和解释,确保用户能逐步操作。同时,注意权限设置和常见问题的提示,提高成功率。</think>### 如何在Mac配置SSH服务? #### 1. **启动SSH服务** Mac系统默认安装了SSH服务(`sshd`),但需要手动启动: ```bash sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist ``` - 此命令会加载并激活SSH守护进程[^1]。 - 验证服务状态: ```bash sudo launchctl list | grep ssh ``` 若显示`com.openssh.sshd`,则表示服务已运行。 #### 2. **检查或生成SSH密钥** SSH密钥用于免密登录(如GitHub、远程服务器): ```bash cd ~/.ssh # 进入SSH配置目录 ls # 检查是否存在id_rsa(私钥)和id_rsa.pub(公钥) ``` - **若密钥已存在**:跳过生成步骤,直接使用现有密钥。 - **若需生成新密钥**: ```bash ssh-keygen -t rsa -C "your_email@example.com" # -t指定密钥类型,-C添加注释 ``` 按提示回车(默认保存路径为`~/.ssh/id_rsa`),生成后公钥为`id_rsa.pub`[^3]。 #### 3. **配置远程服务(以GitHub为例)** - 复制公钥内容: ```bash cat ~/.ssh/id_rsa.pub # 输出内容全选并复制 ``` - 登录GitHub → Settings → SSH and GPG Keys → 点击“New SSH Key”,粘贴公钥。 #### 4. **测试SSH连接** ```bash ssh -T git@github.com # 测试GitHub连接 ``` 若显示`You've successfully authenticated`,则配置成功。 #### 5. **权限配置(避免连接失败)** - 确保目录和文件权限: ```bash chmod 700 ~/.ssh # 目录权限为700 chmod 600 ~/.ssh/* # 私钥文件权限为600 ``` --- ### 常见问题解决 - **连接超时**:检查防火墙是否允许SSH(默认端口22)。 - **密钥权限错误**:确保私钥文件权限为`600`。 - **服务未启动**:重新执行启动命令或重启系统。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值