我们最近为 OpenSSH 应用了供应商提供的补丁。该补丁禁用了一些密钥交换协议,以应对最近的 Logjam 攻击。应用此补丁后,我们有一些供应商无法通过 sftp 与之交换文件,因为连接协商失败(可能是由于已弃用的密钥交换算法)。
在与我们的供应商交谈之前,我只想验证我们看到的一些事情。这是与问题供应商之一的示例 SSH 会话(添加了行号):
# ssh -vv user@host.domain.com
01 OpenSSH_6.2p2, OpenSSL 0.9.8j-fips 07 Jan 2009
02 debug1: Reading configuration data /etc/ssh/ssh_config
03 debug1: /etc/ssh/ssh_config line 20: Applying options for *
04 debug2: ssh_connect: needpriv 0
05 debug1: Connecting to host.domain.com [1.2.3.4] port 22.
06 debug1: Connection established.
07 debug1: permanently_set_uid: 0/0
08 debug1: identity file /root/.ssh/id_rsa type -1
09 debug1: identity file /root/.ssh/id_rsa-cert type -1
10 debug1: identity file /root/.ssh/id_dsa type -1
11 debug1: …Run Code Online (Sandbox Code Playgroud) 我试图理解直接使用 root 进行 ssh 或在维护服务器的情况下创建辅助 sudo 用户之间的技术参数/安全影响。为了澄清这一点,我们讨论的是单个管理员拥有的服务器。对于在机器上工作的多人来说,很明显,为每个实际人员拥有唯一的用户和细粒度的权限可以带来审计跟踪的好处。
我的想法是,如果这是一个桌面站,那么这是有道理的,建议使用非root用户进行日常工作,但在服务器上,您通常登录来维护它,并且99%的时间您的所有活动都需要root权限。
那么,创建一个“代理”用户(无论如何都要 sudo 到 root,而不是直接提供对 root 的 ssh 访问权限)是否有任何安全优势呢?
我能想到的唯一好处是通过模糊性实现安全性,即机器人通常会尝试探测“root”用户。但从我的角度来看,如果 sudoers 的用户受到威胁,就等同于 root 用户受到威胁,所以游戏就结束了。
此外,大多数远程管理框架、NAS 系统、虚拟机管理程序都鼓励使用 root 用户进行 Web 登录。
基本上我要问的是,有没有人遇到过将 rsync 包装在 ssh 中的方法。
使用 OpenSSH v4.9+ sftp 有一些不错的选项,允许您对传入的连接进行 chroot 等 - 这是我会考虑的解决方案,但是我坚持使用 RHEL,并且 RHEL4 或 RHEL5 都不支持该版本SSH。
我目前的解决方案是使用客户端用户的密钥向服务器端添加这样的东西......
server% cat ~/.ssh/authorized_keys command="cd /srv/rsync/etl && tar --exclude './lost+found' -pcf - ./" ssh-rsa...
......因此客户端将被限制为一件事,只有一件事......
客户端% ssh -T -i ${HOME}/.ssh/id_rsa oracle@database.com > sensative.tar
这确保了连接以及服务器(来自客户端)的安全,但是效率低下,因为将一遍又一遍地检索所有文件。
我正在使用 rsync 做类似(或更好)的事情。
使用ssh -t代替ssh连接到远程服务器有几个优点。例如,我可以直接使用 vim: 编辑文件,ssh -t host vim foo.txt否则会失败。
在使用 ssh 时,是否有任何情况下分配(伪)-tty 是一件坏事?
我使用 4096 字节的 RSA PGP 密钥;由于 SSH 也使用 RSA 标准,是否有可能将 PGP 密钥用作 SSH 密钥而无需在服务器上安装其他软件(并且尽可能少地在客户端上安装)?
......这让我发疯。
基本上(过去几个月一直发生这种情况),我登录了几个不同的 CentOS 服务器(一个 Linode、另一个 VPS 和一个我可以访问的共享主机),从我的计算机上运行 5.5、5.7 和 6。 Mac 运行 OS X Lion,使用终端。
基本上:
$ ssh username@example.com
[remote-host] $ nano somefile.txt
Run Code Online (Sandbox Code Playgroud)
一旦我开始编辑文件,如果我使用箭头键移动光标,或者开始删除,然后再次输入,光标会跳动一下,如果我保存文件并重新打开它,很明显光标是,其实就是无缘无故的在一条线上到处跳。
我最终得到诸如“这是一个新文本”之类的信息。当我输入(到光标疯狂的编辑器)“这是一行文本”时。
在编辑配置文件时这是一个大问题,因为我经常必须编辑一行,保存并关闭,然后重新打开以确保该行正确......然后编辑另一行......这变得很烦人.
我发现Linode Lish Shell Vim 和 Nano 渲染问题:线条没有出现/光标位置错误,但我不知道这是否有很大关系,因为那是专门指 lish。
我正在使用ssh -D 8080 my server创建 SOCKS 代理。然后我将 OS X 配置localhost:8080为用作 SOCKS 代理。我正在使用它来访问互联网而不受监控。
我正在使用 Google 的 DNS 服务器 (8.8.8.8),但如何确保 DNS 查询通过 SSH 隧道?
我写了一个 nagios 脚本的一半,我对 SSH 感到烦恼。
根据手册页:
-q Quiet mode. Causes all warning and diagnostic messages to be
suppressed.
Run Code Online (Sandbox Code Playgroud)
然而,如果我启用了 quiet 标志然后传递了一个无效的端口,我仍然会收到一个错误:
$ ssh user@localhost -q -p test
Bad port 'test'
Run Code Online (Sandbox Code Playgroud)
这是一个问题,因为这将使该消息成为第一行,而这正是 Nagios 抓取的内容。!= 0从 ssh 获取退出代码后,我需要输出类似“警告|SSH 错误”的内容,但我可以输出的第一行将是第 2 行。
我怎样才能让 SSH 真正安静下来?
注意:我不确定是在 serverfault、超级用户还是 stackoverflow 上发布这个问题。我选择了 serverfault,因为用户群可能对 cli SSH 和 cli 脚本解决方法最有经验。
有人能说出这是什么意思吗?我尝试了一个命令,比如lastb查看上次用户登录,我看到一些来自中国的奇怪登录(服务器是欧盟,我在欧盟)。我想知道这些是否可能是登录尝试或成功登录?
这些似乎很旧,通常我只将端口 22 锁定到我的 IP,我想我的端口打开了一段时间,最后一次登录是在 7 月。
root ssh:notty 222.92.89.xx Sat Jul 9 12:26 - 12:26 (00:00)
root ssh:notty 222.92.89.xx Sat Jul 9 12:04 - 12:04 (00:00)
oracle ssh:notty 222.92.89.xx Sat Jul 9 11:43 - 11:43 (00:00)
gary ssh:notty 222.92.89.xx Sat Jul 9 11:22 - 11:22 (00:00)
root ssh:notty 222.92.89.xx Sat Jul 9 11:01 - 11:01 (00:00)
gt05 ssh:notty 222.92.89.xx Sat Jul 9 10:40 - 10:40 (00:00)
admin ssh:notty 222.92.89.xx Sat Jul 9 10:18 - 10:18 (00:00)
Run Code Online (Sandbox Code Playgroud) 我正在运行 Debian stable,我希望为我的 'sftponly' 组中的用户建立以下环境:
从我的实验和研究来看,sshd_config 中的以下节似乎让我达到了 90%:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
这给了我监禁的 SFTP 而没有 SSH,这很好。但它也禁用了 SCP,这不太理想,因为很多客户端是使用 SCP 而不是 SFTP 的遗留脚本进程(我们正在替换的服务器支持这两种协议),并且因为这些客户端不受我们的控制并且很容易修改后,完全禁用 SCP 可能不切实际。
此配置将禁用 SCP 是有道理的,因为传入的 SCP 连接会导致 sshd 以该用户的身份通过用户的登录 shell 生成一个“scp”进程。如果不是特殊的“internal-sftp”处理程序,SFTP 似乎通常也是如此。
所以,我想我的问题是:有没有一种方法可以达到与“internal-sftp”相同的效果,但对于 SCP,而不使用像 scponly 和 rssh 这样的第三方工具?'internal-sftp' 的真正好处在于它不需要用支持文件设置监狱,或处理可能被利用的第三方 setuid 二进制文件(特别是 rssh,它有被利用的历史)。