我有两台电脑:PC1 和 PC2。两者都运行相同的 Debian Wheezy 安装和最新更新。PC2 上的安装是使用tar. PC1 和 PC2 之间的唯一区别是 grub 条目、主机名、内容/etc/hosts和 IP 地址。两台计算机的 SSHD 配置相同:
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for …Run Code Online (Sandbox Code Playgroud) 我将主机名列表存储在名为 ssh_hosts.txt 的文件中。在 shell 脚本中,我循环访问 ssh_hosts.txt 中的主机名,并通过 SSH 在指定主机上执行命令。shell 脚本如下所示。
问题是脚本在处理第一个主机后退出。但是,如果我除了通过 ssh 在指定主机上执行命令之外执行其他操作,脚本将运行完成。
在下面的示例中,我注释掉了对 ssh 的调用,并将其替换为当前主机名的简单回显。这将运行直至完成。
我从 Windows 7 上的以下 Cygwin 版本下运行的 bash shell 执行此脚本:
$ uname -a
CYGWIN_NT-6.1 myHostname 1.7.16(0.262/5/3) 2012-07-20 22:55 i686 Cygwin
Run Code Online (Sandbox Code Playgroud)
涉及到的SSH版本有:
$ ssh -V
OpenSSH_6.0p1, OpenSSL 1.0.1c 10 May 2012
$ ssh myUsername@remoteHost 'ssh -V'
myUsername@remoteHost password:
OpenSSH_6.7p1 Debian-5+deb8u3, OpenSSL 1.0.1t 3 May 2016
Run Code Online (Sandbox Code Playgroud)
这是 shell 脚本:
#!/bin/bash
if [[ $# -ne 1 ]]; then
echo "Usage: $(basename $0) <user name>"
exit 1
fi
USER="$1" …Run Code Online (Sandbox Code Playgroud) 我的问题是:是否可以通过 SSH 在未连接到互联网的本地以太网(即无 WiFi)上执行 Linksys WRT1900ACS 路由器的初始配置(从工厂预设)?
更详细的解释如下;这听起来几乎像是一个脑筋急转弯或横向思维难题,但这就是我的情况。我有一个 Linksys WRT1900ACS 路由器 - 刚从盒子里拿出来,没有对其进行任何处理。我只会用它来将一个小型子网添加到一个较大的专用网络中。该网络是完全私有的(没有逻辑或物理互联网连接)并且完全有线(没有无线连接)。此外,我可以连接的所有计算机都没有无线功能,并且它们的唯一用户界面是基于文本的控制台。因此,我可以运行 TUI(基于文本的用户界面)网络浏览器(例如 elinks),但不能运行 GUI 网络浏览器(例如 Firefox)。请注意,在我对问题的最初措辞(上面)中,我指定通过 SSH 远程连接到路由器,因为这会更好,但实际上,如果有帮助的话,我可以直接访问所连接主机的物理控制台(尽管我不能想象一下会怎样)。
我尝试在网上搜索,甚至尝试致电 Linksys 技术支持,但无济于事。
这可能吗?
如何使用 Git 来简单地使本地目录与服务器目录保持同步?
我习惯使用 FTP,但它速度慢且容易出错。
我可以通过 SSH 访问服务器。我可以在服务器上运行 Git。
我还想避免使用第三方 Git 托管服务,例如 Github 或 Bitbucket。我希望能够直接上传到我的服务器。
为了方便起见,我希望 MacOS 保留我的 RSA 密码,但不是无限期地保留(为了安全起见)。我相信 SSH 将使用此 SSH 配置的钥匙串访问
Host *
UseKeychain true
Run Code Online (Sandbox Code Playgroud)
我相信它将使用具有以下配置的ssh-agent :
Host *
AddKeysToAgent yes
Run Code Online (Sandbox Code Playgroud)
几个问题:
我想检查只读文件系统。我写了这个awk命令并且运行良好:
awk '{ if ( $4 ~ /ro,/ && $2 !~ /sys/ ) {print $2} }' /proc/mounts
Run Code Online (Sandbox Code Playgroud)
我想将此命令与ssh. 这不起作用:
$ ssh ip "awk '{ if ( $4 ~ /ro,/ && $2 !~ /sys/ ) {print $2} }' /proc/mounts"
bash: !~: event not found
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?问题是因为波浪号字符吗?
我尝试在我们的服务器上安装带有 vsftpd 的 FTP 服务器并运行命令 sudo ufw allowed ftp。重新启动服务器后,我无法再访问它。
当我 ping IP 时,我仍然收到反馈。使用 Putty 后,我收到“服务器意外关闭网络连接”错误。
这里发生了什么我如何才能再次访问服务器?
我试图找出为什么以下命令无法正确设置工作目录。
ssh localhost bash -c "cd / ;pwd"
Run Code Online (Sandbox Code Playgroud)
虽然以下版本有效:
bash -c "cd / ;pwd"
ssh localhost "cd / ;pwd"
ssh localhost 'bash -c "cd / ;pwd"'
ssh localhost bash -c "pwd; cd / ;pwd"
Run Code Online (Sandbox Code Playgroud)
我在 macOS 和 ubuntu 18.04 上注意到了这种行为。
GitHub 指南生成新的 SSH 密钥并将其添加到 ssh-agent建议在配置用于连接到 GitHub 的 SSH 密钥时使用 ed25519,但如果您通过 SSH 连接到 github.com,您会看到主机密钥是 ECDSA 类型(见下文)。为什么他们不为服务器证书使用与客户端证书推荐的相同类型的加密?
user@computer:/$ ssh -T git@github.com
The authenticity of host 'github.com (140.82.114.3)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Run Code Online (Sandbox Code Playgroud)