通过ssh连接到服务器

什么是ssh

SSH全称(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输。早期,互联网通信都是基于明文通信,一旦被截获,内容就暴露无遗。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。SSH的主要目的是用来取代传统的telnet 和 R 系列命令(rlogin, rsh, rexec 等)远程登录和远程执行命令的工具,实现对远程登录和远程执行命令加密,防止由于网络监听而密码泄露问题。

利用ssh免密码登录服务器

平时如果我们要登录服务器可能会这样

ssh username@host
password:

而且一般的服务器密码都是很繁琐冗长的,我们一天可能要登录很多次服务器,很明显这样是十分低效且麻烦的。我们可以通过在本地和服务器做ssh的相应配置,实现免密码登录服务器.

生成公钥

所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell。
执行

ssh-keygen

命令, 期间会询问生成公钥的地址,如果是一路回车,那么默认都是在~/.ssh目录下生成
id_rsa,和id_rsa.pub这两个文件,其中id_rsa.pub是默认的公钥,而id_rsa是私钥。
.ssh目录是SSH为主机上每个用户分别建立的一个目录,用来存放用户层面的配置信息的。

服务器配置(centos7)

修改ssh的默认配置文件
vi /etc/ssh/sshd_config
将如下配置前的#号去掉

#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

# 有了证书登录了,可以选择禁用密码登录
PasswordAuthentication no

拷贝公钥到服务器的authorized_keys文件下

 $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

启动ssh服务

service sshd start

如果提示

Redirecting to /bin/systemctl start  sshd.service

执行如下命令即可

/bin/systemctl start  sshd.service

注意

1.这里有几个问题可能要注意一下

在centos7系统一下可能在服务器上要先手动安装OpenSSH

yum install openssh-server

OpenSSH Server安装完成后在/etc/init.d目录下应该会增加一个名为sshd的服务
启动sshd服务

 /etc/init.d/sshd start

2.如果有本地有多个公钥

可以在~/.ssh目录下新建名字为config的文件

Host XXX
HostName 000.000.000.000
User suoper
IdentityFile ~/.ssh/id_rsa

其中的Host可以自己随便命名,但是HostName要对应你服务器的IP。

当你通过SSH连接服务器后立即退出,这可能是由于以下原因之一导致的: 1. 客户端存活检测设置错误:请检查你的SSH服务器配置文件(/etc/ssh/sshd_config)。确保ClientAliveInterval和ClientAliveCountMax参数的值正确设置。这些参数分别控制客户端的存活检测间隔和失败检测的最大次数。如果这些值设置得太低,可能会导致连接立即断开。 2. TMOUT环境变量设置错误:在Linux系统中,存在一个名为TMOUT的环境变量,用于指定在SSH客户端未活动指定时间后自动断开连接。你可以通过运行命令"echo $TMOUT"来查看TMOUT环境变量的值。如果TMOUT的值设置得太低,可能会导致连接立即断开。 3. SSH服务器配置问题:可能存在其他的SSH服务器配置问题,导致连接立即退出。你可以检查SSH服务器的日志文件(通常位于/var/log/auth.log或/var/log/secure)以获取更多的错误信息和提示。 请根据上述提到的引用内容,检查并调整相关的配置参数和环境变量,以解决SSH连接立即退出的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [解决Centos使用ssh连接自动断开](https://blog.csdn.net/luxiaoruo/article/details/111192061)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值