加速ssh连接的方法(优化ssh服务)

目录

  • 加速ssh连接的方法(优化ssh服务)

    • 一、修改 /etc/ssh/sshd_config
    • 二、修改被连接端的文件 /etc/nsswitch.conf
    • 三、修改主动连接端的 /etc/hosts
    • 四、查看连接过程 ssh -v

加速ssh连接的方法(优化ssh服务)

本文参考于https://www.cnblogs.com/fwdxl/p/6723820.html,在其基础上略做整理。

一、修改 /etc/ssh/sshd_config

经常出现ssh连接缓慢,让人误以为是ssh连接不上。原因是因为server的sshd会去DNS查找访问
client IP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间。

vim /etc/ssh/sshd_config
UseDNS no
GSSAPIAuthentication no
GSSAPICleanupCredentials no

配置文件中[UseDNS yes]被注释,但默认开关就是yes...(SSH服务默认启用了DNS反向解析的功能)

二、修改被连接端的文件 /etc/nsswitch.conf

hosts: files dns 去掉dns

这行的含义是对于访问的主机进行域名解析的顺序,是先访问file,也就是/etc/hosts文件,如果hosts中没有记录域名,则访问dns,进行域名解析;如果dns也无法访问,就会等待访问超时后返回,因此等待时间比较长。那如果将这一行屏蔽掉是不是也可以达到同样的效果呢?应该是可以的,但是如果本机要通过域名访问其他服务器,则肯定无法访问,因此这行理论上应该需要保留。这个问题也提示我们,dns如果不可用,会带来的一些副作用的。

三、修改主动连接端的 /etc/hosts

如果还慢的话,检查ssh服务端上/etc/hosts文件中,127.0.0.1对应的主机名是否和 uname -n的结果一样,或者把本机ip和hostname(uname -n结果)加入到/etc/hosts里。

四、查看连接过程 ssh -v

[[email protected] ~]# ssh -v [email protected]
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Connecting to 192.168.75.136 [192.168.75.136] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
debug1: Authenticating to 192.168.75.136:22 as 'root'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256
debug1: kex: host key algorithm: ssh-rsa
debug1: kex: server->client cipher: aes128-ctr MAC: [email protected] compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: [email protected] compression: none
debug1: kex: diffie-hellman-group-exchange-sha256 need=16 dh_need=16
debug1: kex: diffie-hellman-group-exchange-sha256 need=16 dh_need=16
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: got SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: got SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: ssh-rsa SHA256:U+p+ybfgROyI0fCuyLffRhMMBeDIuzR4AdVWfNO7MhY
The authenticity of host '192.168.75.136 (192.168.75.136)' can't be established.
RSA key fingerprint is SHA256:U+p+ybfgROyI0fCuyLffRhMMBeDIuzR4AdVWfNO7MhY.
RSA key fingerprint is MD5:a5:98:06:58:84:35:d3:f4:4c:f8:43:a1:a5:12:f5:8e.
Are you sure you want to continue connecting (yes/no)? yes    保存秘钥的交互信息
Warning: Permanently added '192.168.75.136' (RSA) to the list of known hosts.
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available (default cache: KEYRING:persistent:0)

debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available (default cache: KEYRING:persistent:0)

debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
[email protected]'s password:     输入root用户登录密码
debug1: Authentication succeeded (password).
Authenticated to 192.168.75.136 ([192.168.75.136]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Tue Jun 18 22:35:15 2019 from 192.168.75.145

原文地址:https://www.cnblogs.com/liuwei-xd/p/11048399.html

时间: 2024-11-06 11:30:19

加速ssh连接的方法(优化ssh服务)的相关文章

远程SSH连接服务与基本排错

为什么要远程连接Linux系统?? 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器了,此时,只能通过远程连接的方式管理Linux系统.因此,在装好linux系统后,学习Linux运维的第一步应该是配置好客户端软件远程(通过ssh软件进行连接)连接Linux系统进行管理 telnet连接服务器是明文的,非加密的; 默认为23端口 SSH连接服务器是加密的连接; 默认为22端口 ss

怎样让ssh连接保持连接, 而不会因为没有操作而中断

因为安全方面的考虑, ssh服务默认在一段时间内不操作会断开连接, 解决方法修改ssh的配置文件, 让ssh每隔一段时间就自动进行一次连接, 以达到保持连接的目的. 首先找到ssh配置文件的位置: find / -name ssh_config 找到以后, 用vim打开ssh_config文件, 添加以下两行 ServerAliveInterval 50 #每隔50秒就向服务器发送一个请求 ServerAliveCountMax 3 #允许超时的次数,一般都会响应 完成后保存退出, 再重启ssh

Docker入门实战-SSH连接docker容器

简介 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护. Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS

一次在局域网中ssh连接的尝试

最近到手一台二手HP笔记本.卖我本子的是以为很漂亮的服装设计师,她因为有了一台新的Mac本所以HP本就闲置了,于是就卖给了我.本子性能跟我自己的三星本差不多,除了电池不太给力,每次开机都会提示601.我还有一个无线路由器.两台电脑装的都是ubuntu14.04 64位的系统.于是想通过无线路由器开一个LAN在两台电脑之间进行ssh连接.首先尝试ssh localhost$ ssh localhostssh: connect to host localhost port 22: connectio

Linux下通过ssh连接github

github每次pull/push代码时要求推送代码的用户是合法的,所以每次推送时候都要输入账号密码用以验证用户是否为合法用户,而ssh是一种安全的传输模式,可以代替用户的这一"输入账号密码"的行为来验证用户. github共支持2种操作方式 https 可以随意克隆github上的项目,而不管是谁的:在pull/push的时候是需要验证用户名和密码的 ssh 克隆者必须是拥者或管理员,且需要先添加 SSH key ,否则无法克隆.在pull/push的时候不再是验证用户名和密码,而是

Linux - ssh 连接问题

SSH 连接方式 ssh -p 22 [email protected] # 从linux ssh登录另一台linux ssh -p 22 [email protected] CMD # 利用ssh操作远程主机 scp -P 22 文件 [email protected]:/目录 # 把本地文件拷贝到远程主机 sshpass -p '密码' ssh -n [email protected]$IP "echo hello" # 指定密码远程操作 ssh -o StrictHostKeyC

ubuntu下开放ssh连接服务的方法

在ubuntu系统下安装ssh服务的方法,ssh分客户端openssh-client和openssh-server,若要在本机开放ssh服务,则要安装openssh-server. 说明:1.客户端ssh只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client) 2.若要在本机开放ssh服务,则要安装openssh-server sudo apt-get install openssh-server 然后,确

ssh 连接缓慢解决方法

重新安装机器的情况下我们经常会遇到的一个情况是telnet到server速度很快,但是ssh连接的时候却很慢,大概 要等半分钟甚至更久.ping的速度也非常好,让人误以为是ssh连接不上. 下面说下如何解决这样的问题,最为常见的原因是因为server的sshd会去DNS查找访问 client IP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间. 1.在server上/etc/hosts文件中把你本机的ip和hostname加入 2.在server上/etc/ssh/ssh

ssh连接时去掉“The authenticity of host xx can’t be established”解决方法

但前阵子我做备份系统恢复演习时才发现,我的rsync已经很久都没有sync成功了.我本来是采用密钥交换的方式来完成ssh中的验证,但可能由于主机的Key有变化,每次ssh连接(或rsync)时就会有提示:The authenticity of host *** can’t be established ,需要输出一个“yes”的交互. 对于这个提示,我的脚本中一开始没有预知,所以没有做判断和处理(用expect也是容易处理的),所以我决定去掉这样的提示(关于宿主机的检查). 1. 使用ssh连接