我无法通过公钥从 CentOS OpenSSH 客户端登录到 Windows 10 OpenSSH 服务器。我的密码总是被要求(并被接受)。
我发现了很多关于在服务器端正确设置权限的帖子:
C:\Users\username\.sshC:\Users\username\.ssh\authorized_keys我相信我已经完成了权限方面所需的一切。但是为了排除权限问题,我StrictModes=no在服务器上设置为测试并重新启动服务器。我发现我仍然必须输入我的密码。
还有什么可能阻止我通过公钥登录?
我在使用 SSH 共享连接时遇到以下问题:
# Set up a shared connection
ssh -f -N -M -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST"
# I can scp *without* the shared connection
scp root@"$ONE_HOST":/etc/hosts /dev/null
# I can execute a remote command *with* the shared connection
ssh -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST" "date"
# But I can't scp *with* the shared connection
scp -vvv -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST":/etc/hosts .
Run Code Online (Sandbox Code Playgroud)
该脚本给出以下输出:
hosts 100% 59 67.8KB/s 00:00
Wed Feb 28 08:23:10 MST 2018
Executing: program /home/myUser/ssh_sharing_socket host myHost.example.com, user root, command scp -v …Run Code Online (Sandbox Code Playgroud) 我在 RHEL 6.9 下使用 OpenSSL 1.0.1e-fips。
我用这个命令加密了一个文件:
openssl enc -aes-256-gcm -a -e -in plaintext -out ciphertext
Run Code Online (Sandbox Code Playgroud)
然后我用这个命令解密加密的文件:
openssl enc -aes-256-gcm -a -d -in ciphertext
Run Code Online (Sandbox Code Playgroud)
此命令产生以下输出:
test text
bad decrypt
Run Code Online (Sandbox Code Playgroud)
文件已正确解密(即文件内容确实是“测试文本”),但 OpenSSL 报告“解密错误”。即使我明确指定要使用的哈希函数(例如-md sha512),也会发生这种情况。
为什么我收到“坏解密”消息?
我经常执行这样的命令:
ssh username@hostname 'bash -s' < bashScriptToExecuteRemotely
Run Code Online (Sandbox Code Playgroud)
我现在有一个案例,bashScriptToExecuteRemotely期望设置某些环境变量。就我而言,假设它们是 FOO=14 和 BAR=giraffe。
我怎样才能让在远程主机上启动的 bash shell 在执行之前设置这些环境变量bashScriptToExecuteRemotely?
我将主机名列表存储在名为 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)