从失败的恶意 SSH 尝试中可以学到什么关于“用户”的信息?
/var/log/secure)/var/log/secure)有没有其他提取方法?无论是隐藏在日志文件中的信息、随机技巧还是来自 3rd 方工具等。
我在使用 openssh(服务器)和 putty(客户端)组合使用远程 webproxy 时遇到了性能问题。我想禁用加密并测试结果以查看它是否有所作为。我怎样才能做到这一点?有什么我可以修改的sshd_config。我对openssh很陌生。
任何其他想法将不胜感激。
我基本上将我的 IE 设置为使用 127.0.0.1 袜子作为代理。我将我的腻子连接到家里的 openssh 服务器,瞧——我可以通过它浏览互联网。但是,即使我知道我家的连接速度很快(例如,ftp 的工作速度超过 50Kbytes/sec。
我的~/.ssh/config文件条目中有本地转发定义,例如
HOST myServer
hostname 10.10.0.1
user xyz
LocalForward 8080 localhost:80
LocalForward 4000 127.0.0.1:4000
...
Run Code Online (Sandbox Code Playgroud)
这就像一个魅力,但我也有脚本来同步一些数据。
这些脚本在已经存在连接的情况下尝试连接到服务器时会显示许多警告。
bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 8080
bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 4000
....
Run Code Online (Sandbox Code Playgroud)
是否有一种巧妙的使用方法ssh或rsync选项可以禁用会话的所有本地转发?
显然我可以复制&粘贴每个配置块,并构建一个有本地转发的和一个没有本地转发的,但我希望有一个更好的解决方案。
我发现我的服务器通过 SSH 仍然支持 diffie-hellman-group1-sha1。为了与最新的 PCI 合规性保持一致,我一直在努力弄清楚如何禁用 diffie-hellman-group1-sha1。Weakdh.org 没有明确说明如何禁用此功能,也没有在网络上提供任何内容。在 Ubuntu 上禁用 SSH 的端口 22 的情况下禁用此算法的正确方法是什么?以下是我的服务器在运行时支持的算法ssh -Q kex。
diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
diffie-hellman-group1-sha1
curve25519-sha256@libssh.org
Run Code Online (Sandbox Code Playgroud) 这是 Ubuntu 16.04 客户端的输出:
OpenSSH_7.2p2 Ubuntu-4, OpenSSL 1.0.2g-fips 1 Mar 2016
debug1: Reading configuration data /home/manuth/.ssh/config
debug1: /home/manuth/.ssh/config line 1: Applying options for r2d2.manuth.life
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to r2d2.manuth.life [103.12.163.90] port 900.
debug1: Connection established.
debug1: identity file /home/manuth/.ssh/dqar-rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/dqar-rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4
ssh_exchange_identification: …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 jumpbox 进行 SSH,但 SSH 似乎有意检查 jumpbox 的主机密钥,即使我告诉它不要使用普通-o StrictHostKeyChecking=no -o UserKnownHostsFile=no命令行选项。
如果我直接通过 SSH 连接到 jumpbox,我可以让 SSH 按预期忽略错误:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_jumpuser_rsa jumpuser@jumpbox
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加代理跳转选项,我突然收到错误消息。错误不是来自 jumpbox 在 jumpbox 上的任何 .ssh 目录中没有 known_hosts 文件,我也没有以 jumpuser 身份登录:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_jumpuser_rsa -J jumpuser@jumpbox jumpuser@10.10.0.5
Run Code Online (Sandbox Code Playgroud)
错误信息:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is …Run Code Online (Sandbox Code Playgroud) 与此类似的问题有很多答案,但我似乎无法找到一个明确的答案。他们要么至少获取一次公钥,要么完全忽略密钥,要么直接写入 known_hosts 文件(暗示没有散列)
我有服务器的指纹和/或公钥。我想要一个 shell 命令将它添加到客户端的known_hosts文件中。这必须使用任何配置(散列/无散列)
此外,该脚本将从该服务器执行 git pull 操作,因此我不知道此时提供端口信息是否相关。请告诉我是不是。
谢谢。如果这已经得到回答并且我以某种方式错过了它,请随时为我指出正确的方向。
PS - 额外信息:我询问端口的原因之一是因为我做了以下操作但没有成功(我知道这是从主机获取我宁愿不这样做的密钥):
ssh-keygen -R my.awesome.host # hostname
ssh-keygen -R 1.2.3.4 # IP
ssh-keygen -R my.awesome.host,1.2.3.4
ssh-keyscan -H my.awesome.host,1.2.3.4 >> ~/.ssh/known_hosts
ssh-keyscan -H 1.2.3.4 >> ~/.ssh/known_hosts
ssh-keyscan -H my.awesome.host >> ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
但是当我 git clone (通过 ssh)时,我遇到了一个响亮的:
The authenticity of host '[my.awesome.host]:7999 ([1.2.3.4]:7999)' can't be established.
RSA key fingerprint is fi:ger:pr:in:ti:nf:or:ma:ti:on
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)
但ssh user@my.awesome.host没有提示我关于指纹。
这ssh-copy-id对于将公钥发送到服务器非常有用。但是如果你现在没有私钥文件,它就会失败。
$ ssh-copy-id -i my_friend_rsa.pub root@example.com
/usr/bin/ssh-copy-id: ERROR: failed to open ID file 'my_friend_rsa': No such file
Run Code Online (Sandbox Code Playgroud)
我不明白这种行为。
对我来说有两种情况:
第一种情况很少见。如果我可以连接到服务器,服务器已经有了我的公钥。所以ssh-copy-id在这种情况下我不需要。
第二种情况很常见。我授予其他用户访问权限。但我没有他或她的私钥。因此,这种行为使 ssh-copy-id 在第二种情况下无用。
请解释一下为什么ssh-copy-id需要私钥文件?
我在 Ubuntu 服务器上。我正在尝试启用 ssh 隧道,以便在我的项目中添加 git remote。
authorized_keys文件中当我尝试打开远程 shell 时出现错误Server refused our key。
检查日志: Connection closed by <ip> [preauth]在/var/log/auth.log.
更多信息:
~/.ssh/authorized-keys 拥有权限 664。
文件没有命名,authorized-keys这authorized_keys可能是个问题吗?
我错过了什么?
我在 .bashrc 文件中添加了以下行,以启动 ssh-agent(如果它未运行)。
if [ -z "$SSH_AUTH_SOCK" ];then eval `ssh-agent -s`;ssh-add ~/.ssh/my_private_key;fi
Run Code Online (Sandbox Code Playgroud)
但每次我再次登录时,ssh-agent 进程的数量都会增加如何避免这种情况。请查看以下日志并告诉我做错了什么。
[vm@localhost ~]$ ssh root@192.168.x.x
Last login: Wed Feb 15 06:32:07 2017 from x.x.x.x
[root@server ~]# pgrep ssh-agent | wc -l
2
[root@server ~]# exit
Shared connection to x.x.x.x closed.
[vm@localhost ~]$ ssh root@192.168.x.x
Last login: Wed Feb 15 06:32:20 2017 from x.x.x.x
[root@server ~]# pgrep ssh-agent | wc -l
3
[root@server ~]# exit
Shared connection to x.x.x.x closed.
[vm@localhost ~]$ ssh root@192.168.x.x
Last login: Wed …Run Code Online (Sandbox Code Playgroud) 我有一个运行某些脚本的 Ubuntu 服务器,应该通过 ssh 进入 Windows 服务器来执行数据。我正在使用 python 进行开发,并使用 paramiko 进行 ssh。
目前,windows 登录 ssh 密码以纯文本形式提供。
有什么好方法可以存储/检索密码,以便如果有人阅读代码,他们就无法轻松获取密码?
我在私有子网中有一台服务器,我想通过面向 Internet 的机器连接到该服务器。有一些教程。我用过这个:https : //heipei.github.io/2015/02/26/SSH-Agent-Forwarding-thinked-harmful/
它的问题在于它假设我可以编辑~/.ssh/config文件。但是,如果我在 CI 上运行代码,我宁愿使用存储库中附带的配置文件并使用-Fswitch。在这种情况下,上述策略停止工作,因为所ssh使用的命令ProxyCommand不加载相同的配置文件并且不知道别名。我所做的是:
Host ansible
User ubuntu
Hostname xxx.compute.amazonaws.com
Host app
User ubuntu
Hostname 10.0.2.40
ProxyCommand ssh -F test-ssh.cfg -W %h:%p ansible
Run Code Online (Sandbox Code Playgroud)
这有效但有点脏,因为我需要将文件名放入文件本身,如果有人更改文件名,它会中断。所以我的问题是:有没有更简洁的方法来创建带有别名的配置文件,并且ProxyCommand可以与-F?
我试图在网上寻找答案,但我很难找到可靠的答案。
我知道 sshds 有一个内部的、快速的 ssd 缓存,用于经常使用的块。我也知道有一个内部算法来管理这个缓存的使用。这很好,我了解如何从这样的磁盘中获得性能。
现在我想从两个这样的 sshd 创建 raid 1(是的,我喜欢我的数据)。但我怀疑混合技术在这里是否有意义。缓存算法不会被raid愚弄吗?它还会缓存用户经常使用的块吗?
也许在这种情况下忘记 sshds 并简单地从好的旧硬盘创建一个突袭会更聪明?
ssh ×12
ssh-keys ×4
linux ×3
bastion ×1
encryption ×1
hacking ×1
hostkey ×1
logging ×1
pam ×1
password ×1
performance ×1
proxy ×1
public-key ×1
python ×1
raid ×1
socks ×1
ssh-agent ×1
ssh-tunnel ×1
ubuntu-14.04 ×1
windows ×1