我一直在使用C#System.Diagnostics.Process来监视命令行实用程序的输出.
我正在"内部"监视的进程启动第二个进程,并且一旦进行,我就不再接收进程对象的进一步输出.
令人沮丧的是,如果你使用cmd.exe(手动)执行相同的命令(我正在使用System.Diagnostics.Process对象启动),控制台将输出我需要在C#应用程序中看到的每一行!
但是,如果我(出于测试目的)使用System.Diagnostics.Process对象启动cmd.exe并运行该命令,它仍然会停止输出与之前相同的点(直接启动process1.exe); 在使用second.exe时.我认为这个测试会整合所有相关过程的输出,但事实并非如此.如何将所有这些输出都输入到我的C#应用程序中?
我有几台服务器使用以下sshd配置.
# Authentication:
PermitRootLogin no
AllowGroups ssh
PubkeyAuthentication yes
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)
这意味着组"ssh"中的每个用户都可以登录,但只能使用pubkey.不允许登录root.
但是root必须有一个例外:我的$ ip备份服务器必须以root身份登录.
我试过了:
AllowUsers root@$ip
AllowGroups ssh
Run Code Online (Sandbox Code Playgroud)
但AllowUsers会覆盖AllowGroups语句.所以只有来自$ ip的root才能登录.
Match User root, Address $ip
PermitRootLogin {yes|without-password}
AllowUsers root
Run Code Online (Sandbox Code Playgroud)
和
Match Address $ip
PermitRootLogin {yes|without-password}
AllowUsers *
Run Code Online (Sandbox Code Playgroud)
两者都被完全忽略了.组"ssh"中的正常用户只能登录.
这是一个简单的场景,用户登录限制为pubkey,root登录限制为pubkey和某些ip.怎么解决?
我使用它通过SSH隧道进行远程端口转发:
ssh root @ XXXX -R 443:127.0.0.1:443
这绑定到0.0.0.0:443并转发到127.0.0.1:443.
远程服务器有多个IP.是否可以指定要绑定的IP,例如10.10.10.1:443,而不是绑定到所有接口?
iptables在远程服务器上不可用.
我在通过 API 向我的 gitlab 服务器添加 SSH 密钥时遇到问题(它通过网页运行良好)。
我遇到了这个问题(已在此处修复),它与“错误”的 openssh 实现有关。他们在里程碑 7.10 中修复了这个问题。唯一的事情......我的服务器安装了openssh 6.6:
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)
现在,我不知道该修复是否向后兼容,但也许值得一提。
此外,日志没有显示任何警告或错误或任何内容。/tmp/gitlab_key* 文件在服务器上生成:

我面临的问题是 gitlab无法通过 API创建指纹。这是我从 API 得到的回应:
{
"message": {
"fingerprint": ["cannot be generated"]
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我不知道可能是什么问题。我已经为此苦苦挣扎了将近一个星期,所以我真的希望他的问题能够得到解决。
- 只是为了记录,这是我用来通过 API 添加 ssh 密钥的脚本
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud) 我刚买了一台新服务器,并试图确保它ServerAliveInterval足够长,所以我没有被扔掉.
root@server:~# sudo sshd -T
/etc/ssh/sshd_config: line 31: Bad configuration option: ServerAliveInterval
/etc/ssh/sshd_config: terminating, 1 bad configuration options
root@server:~# ssh -V
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7, OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)
即使我要做OpenSSH,为什么我仍然会收到此错误
我们正在使用ansible将多个节点配置为一个集群。这些机器是在自定义AWS类似基础设施上创建的实例。我们在不同的剧本上有大约一百个任务,它们在每个节点上执行。
问题是,我们收到零星的主机无法访问的错误,并且由于以下失败而停止了剧本的执行:
TASK [common : install basic packages] *************************
fatal: [fqdn.for.a.node]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
Run Code Online (Sandbox Code Playgroud)
用-vvv输出:
TASK [common : install basic packages] *******************************
task path: /jenkins/workspace/Cluster-Deployment/91/roles/common/tasks/install-basic-packages.yml:1
<fqdn.for.a.node> ESTABLISH SSH CONNECTION FOR USER: root
<fqdn.for.a.node> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o 'IdentityFile="id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=600 -o ControlPath=/home/turkenh/.ansible/cp/ansible-ssh-%h-%p-%r fqdn.for.a.node '/bin/sh -c '"'"'( umask 77 && mkdir -p "` …Run Code Online (Sandbox Code Playgroud) openssh amazon-web-services ansible ansible-playbook ansible-2.x
我无法通过"公钥"和"密码"的双因素身份验证设置"仅SFTP"登录.
我在Ubuntu 16上运行并使用openssh-server.
普通用户可以使用公钥和密码成功登录.但是,我的"仅SFTP"用户登录时出错.
vim/etc/ssh/sshd_config
AuthenticationMethods publickey,password
PubkeyAuthentication yes
PasswordAuthentication yes
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)
其他系统命令:
addgroup --system sftponly
usermod -G sftponly username
usermod -s /bin/false username
service ssh restart
Run Code Online (Sandbox Code Playgroud)
下面是我的一个"仅限SFTP"用户登录尝试的WinSCP日志.
. 2019-02-01 13:45:42.060 --------------------------------------------------------------------------
. 2019-02-01 13:45:42.060 WinSCP Version 5.13.4 (Build 8731) (OS 10.0.17134 - Windows 10 Enterprise)
. 2019-02-01 13:45:42.060 Configuration: HKCU\Software\Martin Prikryl\WinSCP 2\
. 2019-02-01 13:45:42.060 Log level: Normal
. 2019-02-01 13:45:42.060 Local account: MY-PC\User
. 2019-02-01 13:45:42.060 Working directory: …Run Code Online (Sandbox Code Playgroud) 我尝试在 Ubuntu 16.04 上安装 OpenSSH 服务器,如下所示:
sudo apt-get install openssh-server
Run Code Online (Sandbox Code Playgroud)
但是,它显示以下消息:
Run Code Online (Sandbox Code Playgroud)dell@dell-Latitude-E6400:~$ sudo apt-get install openssh-server Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet …
设置:
问题:
当通过 SSH 从远程位置(通过 Internet)访问树莓派时,它会一直工作到连接挂起。这是随机发生的。有时我可以在几分钟后再次使用 SSH,有时直到我重新启动 Raspi。
我试过的:
debug1: Local version string SSH-2.0-OpenSSH_8.1
kex_exchange_identification: read: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
Connection reset by peer/etc/hosts.allow并/etc/hosts.deny => 没有iptables -L --line-number /var/log/fail2ban.log …试图像我多年来每天所做的那样将文件 scp 文件发送到我的服务器......今天遇到了这个奇怪的错误:
client$ scp filename.file server:/path/to/somewhere/
SSH protocol v.1 is no longer supported
client$ echo $?
255
Run Code Online (Sandbox Code Playgroud)
运行此命令后,该文件不会像通常那样显示在我的服务器上。
此错误仅出现在 scp 命令上。使用 ssh 进入我的服务器工作正常。
有没有人见过这个?我该如何调试?这是一些版本信息:
client$ ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f 31 Mar 2020
Run Code Online (Sandbox Code Playgroud)
client$ apt show openssl
Package: openssl
Version: 1.1.1f-1ubuntu2
Run Code Online (Sandbox Code Playgroud)
server$ apt show openssh-server
Package: openssh-server
Version: 1:7.2p2-4ubuntu2.10
Run Code Online (Sandbox Code Playgroud)
server$ sshd -V
unknown option -- V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.10, OpenSSL 1.0.2g 1 Mar 2016
Run Code Online (Sandbox Code Playgroud)
(请注意,为了清楚起见,我添加了主机名“客户端”和“服务器”)
在我的 sshd_config 中,它显示 Protocol 2
server$ cat /etc/ssh/sshd_config | grep Protocol
Protocol 2
Run Code Online (Sandbox Code Playgroud)
我在我的服务器上运行 …
openssh ×10
ssh ×5
ssh-keys ×2
ubuntu ×2
ansible ×1
ansible-2.x ×1
apt ×1
c# ×1
cmd ×1
fail2ban ×1
gitlab ×1
raspberry-pi ×1
scp ×1
sftp ×1
ssh-tunnel ×1
sshd ×1
tunneling ×1
ubuntu-14.04 ×1