我的问题主要基于此 /sf/ask/1573574201/?rq=1
我遵循上述问题,并且能够连接到服务器,如下所示:
mkfifo CMDs.txt
exec 7> CMDs.txt
Run Code Online (Sandbox Code Playgroud)
然后从另一个终端我连接到服务器,如下所示:
sshpass -p 'mypass' ssh -tt myuser@${IP} < CMDs.txt
Run Code Online (Sandbox Code Playgroud)
会话已建立,但它不是交互式会话(它应该是)。但我可以通过将命令重定向到文件描述符 7 来将命令发送到远程服务器,如下所示:
echo "some command" >&7
echo "some more command" >&7
Run Code Online (Sandbox Code Playgroud)
这工作正常并显示我启动会话的另一个终端中的输出。我的目标是发送命令,并捕获变量中每个命令的输出,以便我可以在发送另一个命令之前对其进行分析。我认为通过阅读标准输出应该可以实现,但我无法弄清楚,因此发布了问题。我可以通过将输出重定向到文件中来捕获文件中的输出,如下所示:
sshpass -p 'mypass' ssh -tt myuser@${IP} < CMDs.txt >>outfile.txt
Run Code Online (Sandbox Code Playgroud)
也如参考问题中提到的,exec 7>&-应该终止会话,但它没有,那么在发送所有命令后如何终止会话?
我是这个社区的新手,我正在开发我的物联网项目,其中我的微控制器作为服务器工作,获取数据并执行请求。我的客户端是终端设备(手机、平板电脑),我通过 SSH 连接。
如果我的互联网突然断开,问题就会出现 - ssh 会话中断,我必须再次使用以下命令重新配置它:
ssh -o TCPKeepAlive=yes -R 80:192.145.47.33:80 example@ssh.localhost.run
Run Code Online (Sandbox Code Playgroud)
以类似的方式,如果服务器(微控制器)的电源断开,那么我会遇到类似的情况。我希望该会话能够自动配置而无需手动干预。
我在 DigitalOcean 上有一个启用了 IPv4 和 IPv6 的 Droplet。该液滴位于数字海洋网络防火墙后面,具有以下规则:
入境:
出境:
我的理解和期望是,这将阻止端口 22 以外的端口上的所有 ssh 尝试。但是,在检查 systemd 日志中的 sshd 单元时。我看到以下条目:
2022-12-29 03:00:32 Disconnected from invalid user antonio 43.153.179.44 port 45614 [preauth]
2022-12-29 03:00:32 Received disconnect from 43.153.179.44 port 45614:11: Bye Bye [preauth]
2022-12-29 …Run Code Online (Sandbox Code Playgroud) 直接使用命令不小心更改了家中的权限:
sudo chown -R root:root .
远程登录 EC2 实例不再有效。更改用户(具有 root 权限)或更改为 root 用户不起作用。
ssh user@xx.xx.xxx.xx -i /home/.ssh/id_rsa
创建实例时,AWS 建议禁用远程 root 登录。
有关如何登录的任何建议?还是所有的希望都破灭了?
我登录sftp:
sftp user@server
Run Code Online (Sandbox Code Playgroud)
然后我运行:
ls -lt
Run Code Online (Sandbox Code Playgroud)
我希望文件按日期排序。
sftp> ls -lt *.csv
-rw------- 0 76547986 200 5073032 Mar 14 08:42 file1.csv
-rw------- 0 76547986 200 5073032 Mar 15 08:41 file2.csv
-rw------- 0 76547986 200 5073032 Mar 16 08:41 file3.csv
-rw------- 0 76547986 200 5072802 Mar 17 08:42 file4.csv
-rw------- 0 76547986 200 1117736 Sep 30 14:44 file5.csv
-rw------- 0 76547986 200 1120419 Oct 2 08:45 file6.csv
-rw------- 0 76547986 200 1119763 Oct 1 08:43 file7.csv
-rw------- 0 76547986 200 5073258 Mar …Run Code Online (Sandbox Code Playgroud) 需要通过本地端口 9990 上的 SSH 隧道访问远程服务器上的端口 9999,以避免防火墙。
我正在使用此命令来建立 SSH 隧道:
ssh -N -i share.pem -L 9990:`ecshare`:9999 ubuntu@`ecshare`
Run Code Online (Sandbox Code Playgroud)
其中 ecmy 包含 ec2 实例的 ip。作为基准,我可以使用以下命令 ssh 并获取远程 shell:
ssh -i share.pem ubuntu@`ecshare`
Run Code Online (Sandbox Code Playgroud)
但是,当我在本地提示上尝试此操作时:
curl -i -X GET http://localhost:9990
Run Code Online (Sandbox Code Playgroud)
我在隧道启动的外壳上得到了这个:
channel 2: open failed: connect failed: Connection refused
Run Code Online (Sandbox Code Playgroud)
当我在远程 shell 上尝试此命令时:
curl -i -X GET http://localhost:9999
Run Code Online (Sandbox Code Playgroud)
...我得到了服务器的响应。
为什么连接被拒绝?
我有在 azure 中运行的 ubuntu VM。
错误地,我使用此命令启用了 ubuntu 防火墙
须藤 ufw 启用
我忘了在 ubuntu 防火墙中启用 SSH 端口(22)
现在我无法使用 SSH 访问我的 VM。
现在做什么
我遇到过一些情况(例如 OSGi API、端口 2222),其中通过 PuTTY 的 SSH 连接在登录时无法进行身份验证,而通过 mRemoteNG 成功验证相同的用户/密码。
PuTTY 的故障症状是通过显示PuTTY Fatal Error带有以下消息的消息框:
“服务器意外关闭网络连接”
在服务器的/var/log/secure.
两者都通过端口 22 成功进入同一服务器。两者都使用 SSH 2.0。
All session output在 PuTTY 日志记录中启用,仅记录以下内容:
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2017.12.26 13:11:05 =~=~=~=~=~=~=~=~=~=~=~=
login as: root
Further authentication required
SSH server: Password authentication
Using keyboard-interactive authentication.
Password:
Run Code Online (Sandbox Code Playgroud)
当我启用时SSH packets and raw data,putty.log 包含更多信息。为了使这篇文章简短,我省略了原始数据:
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2017.12.26 13:15:10 =~=~=~=~=~=~=~=~=~=~=~=
Event Log: Writing new session log (SSH raw data mode) to file: putty.log
Event …Run Code Online (Sandbox Code Playgroud) 我正在尝试调试为什么我的非 root 用户在成功登录后仍无法保持 ssh 连接打开。一个通知我 ssh 连接成功,它立即关闭。用户是ghost,我已经遵循了其他调查提示,例如cat /etc/passwd | grep ghost, 返回ghost:x:187:117:,,,:/home/ghost:/bin/false和/bin/false可能导致失败的理解,但我不确定最佳解决方案以及我还应该检查什么。自从我第一次设置这个用户以来已经有一段时间了,宁愿调试场景也不愿删除并重新创建。
我有一个运行服务的 ubuntu 14.04 服务器,我目前正在设置一些日志可视化,但我注意到我的 /var/log/auth.log 是空的。
我认为它不会有太多内容,因为除了使用 ssh 密钥之外,我还禁用了 ssh 连接。但是,我确实希望有 sshd 日志。是否还有其他地方可以让我看到使用 ssh 密钥的登录信息,或者是否还有其他我不知道的事情发生?
我的最终目标是记录每次有人尝试使用密钥或不使用密钥登录时的日志。
编辑1
我看到有 auth.log 备份,但它们没有记录 ssh 尝试,或使用密钥成功的 ssh 登录。它们只显示 CRON 作业。
我还将 sshd_config 日志记录级别提升到 VERBOSE 而不是 INFO。
ssh ×10
ssh-tunnel ×2
ubuntu ×2
amazon-ec2 ×1
azure ×1
bash ×1
firewall ×1
linux ×1
logging ×1
login ×1
ls ×1
named-pipes ×1
putty ×1
remote ×1
security ×1
sftp ×1
sort ×1
ssh-agent ×1
ssh-keygen ×1
ssh-keys ×1
ubuntu-14.04 ×1
ubuntu-16.04 ×1
ufw ×1