【计算机教育中缺失的一课】ssh远程连接主机

什么是ssh

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接

SSH最常见的用途是远程登录系统,利用SSH来传输命令行界面和远程执行命令非常常用

举个例子,不管你使用Windows系统还是macOS,都可以使用ssh远程连接Linux服务器,从而在你自己的主机上,运行Linux系统环境,或者完成文件的互传

比如笔者有一台Ubuntu的云服务器和一台装了Debian系统的surface,可以用我的主力台式机使用ssh很方便的管理这两台机器
在这里插入图片描述

安装openssh

你的被连接的主机必须要安装openssh服务,比如我要连接到我的Debian或者Ubuntu,那么他们都需要安装openssh

Debian或者Ubuntu的安装如下:

sudo apt-get install openssh-server

启动服务:

sudo service sshd start

查看是否已经启动:

ps -ef | grep sshd

基于口令的远程ssh连接

只需在命令行输入

ssh user@hostname

user处填写用户名,hostname处填写IP地址或域名

  • 如下图所示,我的用户名是zarathustra,ip是192.168.13.113
  • 如果是连接远程服务器的话,且已绑定域名,可以把ip替换为域名

这里会有一个确认的流程,输入yes后即为确认,之后输入密码,即可实现基于口令的ssh连接
在这里插入图片描述

基于RSA配置文件的ssh连接

这种方法更适用于和服务器进行ssh连接,因为服务器ip是公网ip,ip是不变的

但是如果是和局域网内的主机ssh连接,由于局域网内ip易于变动,则不推荐这种方式

生成公钥与私钥:

使用key-gen命令生成公钥与私钥

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa):

之后一直回车即可创建完成rsa公钥与私钥,文件默认被存储到.ssh目录下

配置authorized_keys:

需要将上述步骤中生成的公钥(.pub文件)写入到远程服务器的 ~/.ssh/authorized_keys文件中

如果远程系统上的帐户中尚未包含~/.ssh/authorized_keys文件,则需要手动创建

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

至此,可以通过ssh user@ip 访问远程服务器

维持 ssh 长连接

在~/.ssh/config文件中加入下面代码:

Host *
    ServerAliveInterval 180
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值