标签: openssh

如何使用PHP设置交互式SSH会话?

我正在尝试通过Mac OS X 10.6上的命令行使用PHP建立到远程服务器的交互式SSH连接.我目前正在使用PHP的proc_open函数来执行以下命令:

ssh -t -t -p 22 user@server.com
Run Code Online (Sandbox Code Playgroud)

这几乎可行.该-t -t选项都应该强制伪终端,他们几乎做.我可以输入SSH密码并按Enter键.但是,按下后,终端似乎只是挂起.没有输出,没有任何东西 - 就像SSH会话失败一样.我无法运行命令或任何东西,必须使用Ctrl + C杀死整个事物.我知道登录成功,因为我可以执行命令,ssh -t -t -p 22 user@server.com "ls -la"并获得正确的输出.

我认为这个问题必须与我在proc_open调用中使用标准管道的事实有关,所以我用pty替换它们.我收到以下错误:"此系统不支持pty伪终端......"

Mac OS X根本不支持pty或伪终端吗?(我很擅长使用所有这些shell术语).

这是PHP代码:

$descriptorspec = array(0 => array("pty"), 1 => array("pty"), 2 => array("pty"));  
$cwd = getcwd();  
$process = proc_open('ssh -t -t -p 22 user@server.com', $descriptorspec, $pipes, $cwd);  
if (is_resource($process))  
{  
    while (true)  
    {  
        echo(stream_get_contents($pipes[1]));  
        $status = proc_get_status($process);  
        if (! $status["running"])  
            break;  
    }  
} 
Run Code Online (Sandbox Code Playgroud)

(对不起 - 我不能为我的生活弄清楚SO的格式说明......)

我究竟做错了什么?为什么我不能用pty?这在Mac OS X上是不可能的吗?谢谢你的帮助!

php openssh proc-open pty

3
推荐指数
1
解决办法
6571
查看次数

如何在自定义ssh软件上使用git?

SSH在我国被封锁,所以我必须使用所谓的叉形SSH软件混淆- OpenSSH的,我在Linux操作系统/ opt目录中安装了它,我怎么可以强制git的使用/opt/ob-openssh/bin/ssh/usr/bin/ssh

linux git ssh openssh

3
推荐指数
1
解决办法
566
查看次数

PHPStorm密钥对设置使用gitlab

我刚获得了PhpStorm的许可证,我尝试设置密钥对,可以将代码拉到Gitlab,但我找不到在哪里以及如何制作这个?我在哪里这样做?问题似乎与PhpStorm没有使用root权限有关.

git openssh phpstorm gitlab

3
推荐指数
1
解决办法
1万
查看次数

与Control Master的共享SSH连接不起作用

我已经设置好在我的本地机器上共享一个ssh连接,但是当我尝试在我们的CI服务器上执行此操作时,它失败了,我无法解决原因.

〜/ .ssh/config是

StrictHostKeyChecking=no
Host *
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
ControlPersist 2h
Run Code Online (Sandbox Code Playgroud)

第一个连接将失败,但会创建套接字,第二个连接将失败,因为套接字是陈旧的.

第一次连接的详细输出结束是....

$ ssh -vvvv -N  user@domain.co.uk

....

debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
debug1: match: OpenSSH_6.6.1 pat OpenSSH_6.6.1* compat 0x04000000

....

Authenticated to domain.co.uk ([88.47.112.93]:22).
debug1: setting up multiplex master socket
debug3: muxserver_listen: temporary control path /home/rof/.ssh/control:domain.co.uk:22:user.3HfyjbhRCDHGwnrI
debug2: fd 4 setting O_NONBLOCK
debug3: fd 4 is O_NONBLOCK
debug3: fd 4 is …
Run Code Online (Sandbox Code Playgroud)

sockets ssh openssh

3
推荐指数
1
解决办法
3321
查看次数

SSH ProxyCommand 的问题

我在使用 ssh proxy 命令时遇到一些问题。代理上的身份验证工作正常,但是当我想登录远程主机时,它失败了。问题似乎是,代理尝试使用我的本地 rsa_key 登录,而不是使用存储在代理上的密钥登录。有没有办法来解决这个问题?

这就是我要的:

本地 -- 本地 rsa --> 代理 -- 代理 rsa --> 主机

我使用的配置文件:

Host 192.168.178.32
HostName 192.168.178.32
User user
Port 22
IdentityFile ~/.ssh/id_rsa.pub

Host 192.168.178.30
HostName 192.168.178.30
User user
Port 22
IdentityFile home/user/.ssh/id_rsa.pub
ProxyCommand ssh -W %h:%p -F ssh_config -p 22 192.168.178
Run Code Online (Sandbox Code Playgroud)

ssh proxy openssh ssh-keys

3
推荐指数
1
解决办法
2342
查看次数

id_rsa.pub不是公钥文件

我在libre办公室打开了我的公钥并编辑了密钥的评论部分然后保存了.但是当我跑步时:

ssh-keygen -l -f id_rsa.pub 
Run Code Online (Sandbox Code Playgroud)

我明白了:

id_rsa.pub is not a public key file.
Run Code Online (Sandbox Code Playgroud)

该文件不再被识别为公钥文件.我该如何解决这个问题?

ssh openssh

3
推荐指数
1
解决办法
6033
查看次数

从bash脚本ssh-add并自动化密码输入

我正在尝试从脚本执行ssh-add(此时不关心安全性).

现在ssh提示密码短语,需要自动化,所以我读了几个像这样的东西,发现期望.

现在我做以下事情:

eval `ssh-agent -s`
Run Code Online (Sandbox Code Playgroud)

脚本tmp.sh定义为:

#!/usr/bin/expect
spawn ssh-add /root/.ssh/id_rsa
expect "Enter passphrase for /root/.ssh/id_rsa:"
send "my_pass"
interact
Run Code Online (Sandbox Code Playgroud)

./tmp.sh

ssh-add -l

如果ssh-add可行,它会显示类似的内容

4096 SHA256:wlfP/nhVSWXLcljBOen5GSYZXJGgfi/XJWfZeBwqRsM id_rsa (RSA)

但相反,我得到The agent has no identities.像ssh-agent似乎失去了它的上下文.

我愿意接受其他解决方案来做到这一点.

linux ssh bash openssh expect

3
推荐指数
1
解决办法
4753
查看次数

Windows ssh - 如何在断开连接后保持进程运行

我想通过 SSH(PHP 脚本)启动一个 java 进程(Minecraft 服务器)。并且在断开连接时它不应该关闭。

我正在使用适用于 Windows 和 64 位 Java 的 Bitvise SSH 服务器。我可以启动服务器,但是如果我与 ssh 服务器断开连接,那么 java 进程(Minecraft 服务器)就会停止。我试过 PUTTY 但同样的问题。

是否有用于 cmd 的命令,例如用于 Linux 的 screen 将进程置于后台?

谢谢。

ssh openssh minecraft

3
推荐指数
1
解决办法
4507
查看次数

无法使用我的 MacBook 连接到 EC2 服务器

我无法从我的 MacBook 连接到 EC2 (CentOs)。当我从 ubuntu 机器连接它时,它将被连接。目前,我收到以下错误:

ec2 ssh sign_and_send_pubkey: no mutual signature supported Account locked due to 290 failed logins
Run Code Online (Sandbox Code Playgroud)

我该如何解决问题?

我尝试了以下命令:

ssh -i key.pem ec2-user@ip
Run Code Online (Sandbox Code Playgroud)

macos openssh amazon-ec2 amazon-web-services

3
推荐指数
2
解决办法
3157
查看次数

在SSH配置中取消设置特定主机的参数

.ssh/config,我RemoteForward为给定域中的所有主机设置了一个:

Host *.[domain]
   RemoteForward [remote-port] 127.0.0.1:[local-port]
Run Code Online (Sandbox Code Playgroud)

如何为该域中的特定主机取消设置该参数(例如git.[domain])?

ssh openssh

2
推荐指数
1
解决办法
844
查看次数