Ubuntu使用ssh连接两个主机

在两台连接同一WiFi的主机上,通过SSH进行服务器配置,包括安装openssh-client和openssh-server,查询并使用IP地址建立连接。设置PermitRootLogin,X11Forwarding和PasswordAuthentication参数,然后通过ssh命令进行连接测试,成功实现通过ssh-X打开文件管理器。

前提:两者连接同一个WiFi(局域网)

ssh安装:

sudo apt-get install openssh-client 
sudo apt-get install openssh-server 

首先在两个主机分别终端输入:ifconfig

查询两者的ip

用户名是@前面的那个:

服务端:xtark@地址
客户端:gzy@地址

//可以使用 -p 来修改端口号,比如连接到服务器的8400端口:
//ssh -p 8400 xtark@192.168.199.152


在客户端打开终端输入指令连接:
ssh -X xtark@服务端地址

修改下面的文档:

sudo vim /etc/ssh/sshd_config
PermitRootLogin yes
X11Forwarding yes
X11UseLocalhost no
PasswordAuthentication yes

然后再启动即可:ssh -X xtark@服务端地址

输入:nautilus打开文件管理器--成功

<think>好的,我现在需要回答用户关于如何在Ubuntu系统上生成并发送SSH密钥到远程服务器的问题。首先,我应该回忆一下用户提供的引用内容,看看有没有相关的步骤可以借鉴。 用户提到了引用3、4、5,其中引用3和5涉及生成SSH密钥对,引用4提到了使用ssh-copy-id命令。用户的问题核心是生成密钥并发送到远程主机,所以需要分步骤说明这两个过程。 首先,生成SSH密钥。根据引用3和5,生成密钥对的命令是ssh-keygen,可能需要指定类型(-t rsa)、注释(-C)和文件名(-f)。用户可能需要自定义文件名,或者使用默认的id_rsa。这里需要提醒用户如果已有密钥是否覆盖的问题,引用5提到不要覆盖现有密钥,所以步骤里应该包含检查是否存在密钥,或者生成不同名称的密钥。 然后,发送公钥到远程服务器。引用3提到将公钥追加到authorized_keys文件,而引用4则推荐使用ssh-copy-id命令,这样更方便。需要解释这两种方法,但优先推荐ssh-copy-id,因为它更简单,自动处理权限问题。 另外,用户可能需要配置权限,比如.ssh目录和authorized_keys文件的权限,引用3和4都有提到这点,所以步骤里需要包含chmod命令的设置。 还要注意是否需要修改SSH配置文件,比如禁用密码登录,但用户的问题没有提到这个,可能暂时不需要。但可以作为一个可选步骤或者注意事项提到。 接下来,验证连接是否成功,这部分可以通过ssh命令测试,确保用户能够免密登录。 最后,根据用户的问题生成相关问题,比如如何多密钥管理、权限问题、其他传输方法等,这有助于用户进一步了解相关知识。 需要检查步骤是否清晰,命令是否正确,并确保符合用户的实际需求。比如用户可能使用的是非默认密钥名称,所以需要说明如何处理。同时,确保所有路径和命令正确,比如ssh-copy-id的使用格式是否正确,如引用4中的示例可能需要用户替换自己的用户名和IP地址。 总结,回答的结构应该是:生成密钥、发送公钥、设置权限、验证连接,然后相关问题。每个步骤都要简洁明了,并引用相关的引用内容作为支持。</think>### 如何在Ubuntu上生成并发送SSH密钥到远程服务器 #### 1. 生成SSH密钥对 在Ubuntu终端执行以下命令生成RSA密钥对: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` - `-t rsa` 指定密钥类型为RSA加密 - `-b 4096` 设置密钥长度为4096位(默认2048) - `-C` 添加注释(建议用邮箱标识用途) - 按提示输入密钥保存路径(默认 `~/.ssh/id_rsa`),若已有密钥建议命名新文件(如 `mykey`),避免覆盖[^5] #### 2. 发送公钥到远程服务器 **方法一:使用 `ssh-copy-id` 自动传输** ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_host_ip ``` - 自动创建 `.ssh/authorized_keys` 并追加公钥 - 需要输入远程服务器密码[^4] **方法二:手动追加公钥** 若服务器未安装 `ssh-copy-id`,可手动操作: ```bash # 本地复制公钥内容 cat ~/.ssh/id_rsa.pub # 远程服务器操作 mkdir -p ~/.ssh echo "粘贴公钥内容" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` #### 3. 验证免密登录 ```bash ssh username@remote_host_ip ``` 若配置成功,将直接登录无需密码[^2] #### 4. 多密钥管理(可选) 若使用自定义密钥名称(如 `mykey`),需创建SSH配置文件: ```bash vim ~/.ssh/config ``` 添加以下内容: ``` Host remote_host_alias HostName remote_host_ip User username IdentityFile ~/.ssh/mykey ``` 之后可通过别名直接连接: ```bash ssh remote_host_alias ``` ### 注意事项 1. 密钥权限必须正确:`.ssh`目录权限为700,`authorized_keys`文件权限为600[^3] 2. 若使用非默认密钥路径,需通过 `-i` 参数指定私钥: ```bash ssh -i ~/.ssh/mykey username@remote_host_ip ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值