Tag: ssh
-
Unable to negotiate with xx.xx.xx.xx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dssssh
Centos 6.8 操作系统下生成的 SSH Key,下载并添加至客户端,使用 OpenSSH v7.0 及以上的版本的 Linux 客户端进行访问时,提示如下内容:Unable to negotiate with xx.xx.xx.xx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss。 其主要原因在于 OpenSSH v7.0 及以上的版本 不再支持 ssh-dss 加密算法,导致 Centos 6.8 操作系统下生成的 SSH 密钥在较高版本的 Linux 操作系统中无法适配。可参考以下操作步骤进行解决。 操作步骤: 登录客户端主机的终端,修改 /etc/ssh/ssh_config 配置文件。 vi /etc/ssh/ssh_config 如果是比较新的操作系统,比如阿里云的等保三级操作系统,有严格的加密要求,终极解决方案就是降低适配:
-
SSH的各种玩法(隧道 端口转发 多路复用 跳板)
客户端使用ssh-keygen生成一对公私钥,然后将公钥存到登陆用户家目录的.ssh/authorized_keys这样客户端就能用公私钥登陆了,使用ssh客户端的-i选项可以指定私钥路径。 ssh -i /path/to/file.pem user@moneyslow.com如果没有指定文件路径,默认会找客户端用户目录下的~/.ssh/id_dsa或~/.ssh/id_rsa。 需要注意的是,私钥的权限应该是600(当前用户可读可写) 使用ssh-keygen创建私钥时可能设置了密码,可以使用ssh-agent管理这些密钥将密钥交给ssh-agent管理 ssh-add ~/.ssh/id_rsa如果设置了密码,这个命令会让你输入密钥的密码,之后使用ssh登陆就不用输入密码了。 Port 2222 #这个端口默认是22,改成不容易猜的这时候客户端需要加上-p选项 ssh -p 2222 user@moneyslow.com也可以使用ssh URI方式来指定端口 ssh ssh://user@moneyslow.com:2222和http://xxx的80端口类似,ssh://xxx不指定端口默认就是22号端口 ssh user@moneyslow.com “ps aux”除此之外,我们还可以将命令的输出与客户端的命令进行交互 ssh user@moneyslow.com “ps aux” | less甚至可以从远端拷贝文件夹到客户端 ssh user@moneyslow.com ‘tar cz /usr/share/nginx/html/’ | tar xzv这里压缩是为了加快传输速度 ssh user@moneyslow.com ‘tar -C /usr/share/nginx/html/ zcf – 404.html 50x.html’ | tar zxf -同样,我们可以使用ssh自己实现一个带压缩的scp的功能 tar czv src | ssh…
-
报错sshd[388528]: bad addr or host: :: (Address family for hostname not supported)
报错提示很明显了,要开启AddressFamily,处理办法,在/etc/ssh/sshd_config文件中包含以下三行:
-
代替内网穿透工具Ngrok的方案:nginx+ssh隧道
早期Ngrok是免费的,最近几年就花钱了。其实道理都一样,nginx接请求,转发给ssh的隧道tunnel,下面来实现:本例子是所有的命令都在一个机器上运行,实现目的是访问这个服务器上的80端口,80端口转给本地的3333端口(sshd监听),然后3333端口转给本地的8888端口(sshd隧道),本地的8888服务是个python的HTTPsimpleserver。总结就是访问80端口,实际访问的是8888端口。 1、nginx配置: 有了此配置,假设我访问了 tunnel.moneyslow.com, Nginx 将接收连接,并看到它应该对其进行反向代理。 它会有效地将连接传递给正在侦听端口 的任何应用程序3333。 目前,没有任何程序正在侦听此端口,因此我们将从 Nginx 获得502 Bad Gatewayor404 Not Found错误。 2、建立隧道: 3、起个服务: 4、https加密,在第一步的nginx配置里加证书配置:
-
-
SecureCrt密码修改后总是要求输入密码,提示“Password Authentication Failed”
SecureCrt版本:Version 9.4.2 (x64 build 3191),出现错误:Password authentication failed. Please verify that the username and password are correct. 有这样一种场景:Securecrt的用户密码修改后,虽然在“save password”打了勾,但是再次登陆仍然需要输入新的密码才能进,新密码并没有被Securecrt记住,导致每次登陆都需要输入密码。 仍然需要输入新密码才能进: 研究了一下,以下方法可以避免,在ssh的设置中把Credentials进行指定就好了,点击ssh配置,点击Credentials,选择用户名,点击右边的小钥匙,点击Add,增加Title和Usemame,认证方式使用password,点击ok。 这样就解决了,下次可以直接进入,不用密码了。但是不知道为什么。 另外有个新的方法,也可以试试:
-
-
避免SSH垂直越权!agent forwarding 和 proxy command 命令的安全风险
1、利用别人身份访问自己没有权限看到的代码 2、冒充他人身份发送 commit 3、登入本来没有权限的服务器,然后进去在 ~/.ssh/authorized_keys 加上我们的 public key,就可以乱登了(通常应该没人会特别去检查这只档案吧 XD?)
-
-
ssh连接报错userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes [preauth]终极解决方案
解决办法:vi /etc/ssh/sshd_config最后一行添加:PubkeyAcceptedKeyTypes=+ssh-dss重启服务:systemctl restart sshd 另外,如果是RSA不支持的问题,有可能是服务器端,也有可能是客户端有问题,建议放弃RSA,比较麻烦,参考: 另外一种严重的情况,就是阿里云的等保三级的操作系统: 看下支持的私钥格式: 看起来都支持,没问题。可以深入研究官方加密文档: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/security_hardening/using-the-system-wide-cryptographic-policies_security-hardening#system-wide-crypto-policies_using-the-system-wide-cryptographic-policies 其中一开始就解释了LEGACY策略级别允许 DSA 算法。事实上,要使使用 DSA 密钥的 SSH 公钥身份验证正常工作(即使没有重新启动sshd),只需要降低兼容性策略命令, 所以,终极解决方案: update-crypto-policies –set LEGACY 是一个用于配置系统加密策略的命令。具体来说,它用于设置系统的加密策略为 LEGACY 模式。详细解释:update-crypto-policies:这是一个用于管理系统范围的加密策略的命令。加密策略定义了系统中各种加密库和工具(如 OpenSSL、GnuTLS、OpenSSH 等)使用的加密算法和协议。–set LEGACY:–set 选项用于指定要设置的加密策略。LEGACY 是一种预定义的加密策略,它允许使用一些较旧、安全性较低的加密算法和协议。这种策略通常用于兼容旧系统或旧应用程序,但可能会降低系统的安全性。加密策略的常见选项:DEFAULT: 默认的加密策略,提供良好的安全性和兼容性。LEGACY: 允许使用一些旧的、安全性较低的加密算法和协议,适用于需要兼容旧系统的场景。FUTURE: 提供更高的安全性,使用更严格的加密算法和协议,但可能会影响与旧系统的兼容性。FIPS: 符合 FIPS(Federal Information Processing Standards)标准的加密策略,适用于需要满足特定安全标准的场景。使用场景:当你需要与旧系统或旧应用程序兼容时,可以使用 LEGACY 策略。但请注意,使用 LEGACY 策略可能会降低系统的安全性,因此应谨慎使用,并在可能的情况下尽快恢复到更安全的策略。示例:sudo update-crypto-policies –set LEGACY执行此命令后,系统的加密策略将被设置为 LEGACY,系统将允许使用一些旧的加密算法和协议。 如果你之后想恢复到默认的加密策略,可以使用以下命令:sudo update-crypto-policies –set DEFAULT 注意事项:更改加密策略可能会影响系统的安全性,因此在生产环境中应谨慎操作。在更改加密策略后,可能需要重启相关服务或系统才能使更改生效。 参考:https://superuser.com/questions/1464574/ssh-connection-issue-on-fedora-30-with-openssh-8-0-using-ssh-dss-still-asking
-
ssh连接报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
报错如下: 解决办法:根据提示,删掉/home/aa/.ssh/known_hosts 里相应的ip
-
-
ssh failed Permission denied (publickey,gssapi-keyex,gssapi-with-mic)报错解决办法
ssh failed Permission denied (publickey,gssapi-keyex,gssapi-with-mic) If you are facing issues with ssh login and displaying the error message “ssh failed Permission denied (publickey,gssapi-keyex,gssapi-with-mic)”, try to follow the below steps: You may try edit in /etc/ssh/sshd_config: cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.back vim /etc/ssh/sshd_config Change “PasswordAuthentication no” to “PasswordAuthentication yes” Restart sshd service service sshd restart Try to…
-
SSH 登录时出现如下错误:Disconnected:No supported authentication methods available
问题描述 当使用 SSH 登录云服务器 ECS (Elastic Compute Server) Linux 服务器时,即便正确输入了密码,也会出现类似如下错误信息: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). sshd[10826]: Connection closed by 192.168.0.1. Disconnected:No supported authentication methods available. 但相同用户,通过 管理终端 可以正常登录。 问题原因 该问题通常是由于 SSH 服务修改了 PasswordAuthentication 参数,禁用了密码验证登录所致。 处理办法 要解决此问题,请进行如下配置检查和修改: 通过 管理终端 进入系统。 通过 cat 等指令查看 /etc/ssh/sshd_config中是否包含类似如下配置: PasswordAuthentication no # 说明:该参数默认启用,默认值为 yes。 如果需要修改相关策略配置,在继续之前建议进行文件备份。 使用 vi 等编辑器,将参数值设置为 yes,或者整个删除或注释(在最开头添加 # 号)整行配置。比如: # PasswordAuthentication no 使用如下指令重启 SSH 服务: service sshd restart 再次尝试登录服务器。
-