我希望能够使用ssh,但我最终会间歇性地超时。
以下是我如何在有问题的服务器上重现错误:
$ ssh <user>@<server> ls # returns contents as expected
$ ssh <user>@<server> ls # " " " "
$ ssh <user>@<server> ls # " " " "
$ ssh <user>@<server> ls # times out
ssh: connect to host <server> port 22: Connection timed out
Run Code Online (Sandbox Code Playgroud)
如果我等待大约 10 分钟左右,它会在前 3 次再次工作。系统管理员无法确定问题。
为普通用户创建密钥对时,可以选择使用 3DES 对称加密私钥。我通常认为这是一个好主意,那么即使密钥被盗,对攻击者来说也是无用的。
我注意到在每台运行 sshd 的机器(至少是基于 Ubuntu 的)上,安装 sshd 服务器软件时生成的私钥文件 /etc/ssh/ssh_host_rsa_key 没有使用 3DES 加密。是否可以强制 sshd 使用加密密钥而不加密整个磁盘?
我认为它类似于 Apache-over-ssl 使用密钥的方式。如果是加密的,每次运行apache时,必须输入密码才能解密私钥。sshd 有类似的功能吗?
通过 RSA 密钥进行 SSH 身份验证:~/.ssh/authorized_keys。好的。
有没有办法设置系统范围的授权密钥,以便我可以登录任何帐户,包括新创建的帐户?
原因:我有一台服务器并且是唯一的管理员。用户帐户用于将网站彼此隔离,以防万一它们中的任何一个被黑客入侵。
我经常使用 SFTP 并创建新帐户,因此,我厌倦了复制 ~/.ssh/authorized_keys :)
我正在尝试通过 SSH 连接到我的一台服务器。无论我使用哪个服务器的 IP 地址进行连接,RSA 指纹都应该相同,还是每个 IP 地址都不同?
我正在使用最新更新在 fedora core 15 上运行 yum 安装的 autossh 1.4a。
这有效:
ssh -L 9000:valid.fqdn:80 another_valid_fqdn
Run Code Online (Sandbox Code Playgroud)
但是,autossh 失败并打印其使用消息:
ssh -L 9000:valid.fqdn:80 another_valid_fqdn
usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]
-M specifies monitor port. May be overridden by environment
variable AUTOSSH_PORT. 0 turns monitoring loop off.
Alternatively, a port for an echo service on the remote
machine may be specified. (Normally port 7.)
-f run in background (autossh handles this, and does not
pass it to ssh.)
-V print autossh version and exit. …Run Code Online (Sandbox Code Playgroud) 我只是第一次进入 bash。
我将如何在此范围内的服务器上运行函数?drush 状态也仅适用于通过 ssh 连接的服务器。
#!/bin/bash
function test {
drush status
}
function connect {
ssh user@serveraddress 'test'
}
connect
Run Code Online (Sandbox Code Playgroud)
我知道您需要将远程代码放在 ssh user@server 'code here' 中,但是复杂的事情会与所有 '" 等混淆。例如,这应该回显服务器的所有 db 名称。
function connect {
ssh user@serveraddress
'
dbuser=user
dbpass=pass
DBS=`mysql -u$dbuser -p$dbpass -Bse 'show databases'| egrep -v 'information_sch$
for db in $DBS; do
echo "DB name - $db"
done
'
}
connect
Run Code Online (Sandbox Code Playgroud)
任何帮助链接表示赞赏,干杯
我有一个备份远程系统的脚本,并希望它在运行备份脚本之前和之后显示远程备份设备上的磁盘空间。
感谢另一篇文章学习了如何通过 SSH 运行远程命令,例如(SSH 密钥已设置为自动登录)。
echo `ssh -t user@host uname -a`
Run Code Online (Sandbox Code Playgroud)
但是,如何获得来自命令的多行响应,例如
echo `ssh -t user@host df`
Run Code Online (Sandbox Code Playgroud)
响应只显示 df 输出的最后一行
我有一个包含许多文件的文件夹。我想删除超过 30 天的文件,所以我使用以下命令:
find cache/ -mtime +30 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
但是我的 SSH 会话在命令完成之前断开连接。
如何限制一次删除的文件数量?例如:
find cache/ -mtime +30 -LIMIT 10000 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud) 如何设置我的 SSH 服务器,以便身份验证方法取决于客户端 IP 地址?
internal network -> password login enabled
request from WAN -> only passkeys enabled
Run Code Online (Sandbox Code Playgroud)
我会避免为每个用户设置两个帐户(内部/外部)并相应地重写配置文件。
我知道您可以使用 Control+C 强制退出它,但是假设我正在屏幕上运行一个程序,例如 Minecraft 服务器……我如何在不关闭屏幕/服务器的情况下在 SSH 中离开屏幕?
有捷径吗?
我怀疑我可以输入任何命令,因为 Minecraft 程序是一个控制台。