问题标签 [plink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
9895 浏览

ssh - Plink 的替代 SSH 应用程序

我最近开始遇到 TortoiseCVS 的问题,或者更具体地说是 plink,它附带的 SSH 应用程序。它尝试连接的 IP 地址无法更改,并且与旧 CVS 存储库的 IP 保持一致。从它的主站点下载 plink 并从命令行调用仍然有这个问题。

TortoiseCVS 可以选择它使用的 SSH 应用程序,我想知道我可以使用哪些其他替代方案?

0 投票
3 回答
2633 浏览

emacs - XP上的Emacs,tramp,plink问题

目标机器正在运行 Ububtu 服务器 8.04。
这是流浪汉输出:

编辑,详细缓冲区最后包含以下内容:

命令:
stty -inlcr -echo kill '^U'
-inclr关闭“将换行符转换为回车”
-echo 关闭“回显输入字符”
kill '^U'设置'^U'以擦除当前行

0 投票
1 回答
6988 浏览

winapi - CreateFile("CONIN$" ..) 是做什么的?

我正在破解plink的源代码以使其与 unison 兼容。

如果你不知道,unison是一个文件同步工具,它运行一个“ssh”命令来连接远程服务器,但是windows没有ssh.exe;有 plink,它非常接近但不够接近(它的行为不像 unison 期望的那样),所以人们通常在它周围做包装,就像这个

问题之一是 unison 期望密码提示打印到 stderr(但 plink 将其打印到 stdout,并导致 unison 混淆),所以我想,嗯,应该足够简单,破解我的 thru plink 代码并制作它将提示打印到标准输出。所以我破解了我的方式并做到了。

Next problem: I can't respond to the prompt!! no matter what I type, it has no effect.

the code for getting input is roughly like this:

I'm not sure why it's done this way, but I'm not an expert in designing command line tools for windows, so what do I know! But I figure something is missing in setting up the input handle.

I looked at the source code for the above wrapper tool and I see this: hconin=CreateFile("CONIN$",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_EXISTING,0,0)

and I try it (just for the heck of it)

and surprisingly it works! I can now respond to the prompt!

Why is this? what is "CONIN$"? and why is it different from the STD_INPUT_HANDLE?

我可以“猜测”FILE_SHARE_READOPEN_EXISTING在其中发挥作用(因为 ssh 是从另一个进程中运行的),但我想了解这里发生了什么,并确保这段代码没有一些不需要的方面效果或安全漏洞或类似的可怕的东西!

0 投票
3 回答
7271 浏览

emacs - Emacs + 流浪汉 + plink

我正在尝试让在 Windows XP 下运行的 emacs tramp 在 Amazon EC2 实例上通过 putty plink 工作。这样做的文档很少。我可以找到部分文档,但没有一个可以解决使其工作所需的所有步骤。

任何人都可以提供一个演练,或一个演练的指针吗?

0 投票
2 回答
10283 浏览

utf-8 - PLINK 将字符集转换更改为 UTF-8 (utf8)

有谁知道如何将 plink(Putty 的命令行版本)上的字符集转换配置为 UTF-8?我正在尝试通过 SSH 连接到字符集配置为 UTF-8 的 Linux 服务器。

这可以通过 Putty 轻松实现,但我似乎无法在 Plink 上找到该命令行选项...

0 投票
1 回答
2907 浏览

git - plink 一遍又一遍的密码

我正在使用 plink 作为 GIT 设置的一部分,并且我已经正确设置了我的远程密钥并且可以通过 Putty 进行连接。

但是,当我尝试运行 msysgit 和 TortiseGit 直接克隆 git 时 - 通过输入路径

c:\Program Files (x86)\puTTY\plink.exe

我得到一个窗口框,要求输入密码。

现在我在我的 rsa 密钥上设置了一个密码 - 但是当我输入该密码时它不起作用。(我知道我可以使用选美,但它不起作用,因为当我输入一个密码时,它只会显示“致命错误挂断”)

我怎样才能知道 plink.exe 正在使用什么密码或信息,因为显然有问题?

0 投票
3 回答
1801 浏览

windows - 在批处理文件中加速 ssh

这是我的情况:
    我有一个带有 Windows 客户端的 linux 服务器/媒体中心。
    我的目标是远程控制节奏盒等。
    我已经使用 plink(基于 Windows 的 cli ssh 玩具)完成了这项工作。
    问题是启动 ssh 会话登录并发送命令非常慢,这是可以理解的。当我有一个 Windows 服务器时,我使用了一个名为 psexec 的工具,它几乎是即时的。

    有没有办法加快这个过程?要么以某种方式发送带有登录请求的命令,这应该会显示出一些改进。或者通过维护我可以使用的持久 ssh 连接。(在命令末尾链接 dcs)。

更多信息:
在我的 Windows 机器上,我正在使用类似的 bat:
plink -ssh -l username -pw pass myipaddress "/home/username/bin/skip"

在我的 linux 机器上,skip bash 文件类似于:
//needed to get around a x11 error caused by controlling rhythmbox over ssh
if its an ssh connection
   copy the dbusaddress
fi
rhythmbox-client --next //the cli wrapper for rhythmbox


进一步研究:
    唯一的方法似乎是保持 ssh 连接作为服务打开/维护。这似乎是可行的,因为由于设置 ssh 隧道(绕过防火墙)而存在需求。从那里我需要一种将命令行命令发送到这个现有连接或重用该连接的方法。
    另一个选择当然是不使用 ssh。地狱,我已经通过 samba 文件共享建立了连接,并且没有延迟。我敢打赌我可以放置一个服务 linux 端来检查修改过的文件。然后有一个修改所述文件的 ap 客户端。令人惊讶的hacky,但到目前为止,它似乎是最好的选择。最好我的意思是唯一可以减少控制滞后的。必须有比这更好的方法,我不能成为唯一一个使用 linux 作为媒体中心想要远程控制的书呆子。这种将主题从 stackoverflow 转移到超级用户,但没关系。

0 投票
2 回答
1233 浏览

python - python unicode实现(使用外部程序:cygnative plink ssh rsync)

我有一个需要在 Windows 上运行的 python 备份应用程序。它需要 UTF 兼容性(以便能够备份包含 UTF 字符(如意大利重音符号)的目录)。问题是它使用外部程序(plink、cygwin、ssh 和 rsync),我无法让它们工作。原型32行,请看:

仍然不适用于 nosklo 的版本,检查结果:

python prototype_unicode_new.py 'rsync.exe --stats -az --numeric-ids --delete --blocking-io --modify-window=2 --no-group --chmod=u=rwX,g=,o = -e "cygnative plink -ssh -2 -batch -pw test" /cygdr ive/c/\xce\xba\xcf\x8c\xcf\x83\xce\xbc\xce\xb5 vaidab@192.168.1.86:/volatile /back kup/vaidab/2010-03-03.15_41_56/'

OUT: '\n文件数: 0\n传输的文件数: 0\n总文件大小: 0 字节\n总传输文件大小: 0 字节\n文字数据: 0 字节\n匹配数据: 0 字节\n文件列表大小: 9 \n文件列表生成时间:0.001 秒\n文件列表传输时间:0.000 秒\n发送的总字节数:22\n接收的总字节数:12\n\ nsent 接收的 22 个字节 12 字节 68.00 字节/秒\n总大小为 0 加速为 0.00\ n' ERRS: 'rsync: link_stat "/cygdrive/c/\xc3\x8e\xc2\xba\xc3\x8f\xc5\x92\xc3\x8f\xc 6\x92\xc3\x8e\xc2\xbc\xc3\ x8e\xc2\xb5" 失败:没有这样的文件或目录 (2)\nrs 同步错误:某些文件/属性未在 /home/lapo/packaging/rsync-3.0.6 传输(参见以前的错误)(代码 23) -1/src/rsync-3.0.6/main.c(1039) [发件人=3.0. 6]\n' RET: 23

0 投票
1 回答
899 浏览

windows - emacs、tramp、rsync、微软视窗

类似于使用 emacs tramp 与 rsync 进行远程开发 ,但该问题并未解决 MS Windows。

有没有人能够通过 cygwin 或其他方式使用 rsync 而不是 plink?

0 投票
3 回答
11982 浏览

windows - 通过 ssh 在 Windows 上使用带有 plink 问题的 Mercurial “hg clone”

我有一台安装了 CopSSH 的 Windows Server 2008 机器 (iis7)。为了连接到它,我有一台安装了 Mercurial 1.5.1(和 TortoiseHg)的 Windows 7 机器。

我可以使用带有非标准 ssh 端口和 .ppk 文件的 PuTTY 连接到服务器。所以我知道服务器可以通过 SSH 连接。

接下来,我想使用 CLI 通过 hg clone 进行连接以获取私有 repo。我在其他地方看到您需要在 mercurial.ini 文件中配置 ssh,所以我的 mercurial.ini 有一行:ssh = plink.exe -ssh -C -l username -P #### -i "C:/Program Files/PuTTY/Key Files/KyleKey.ppk"
注意:
username填写的是我通过 copSSH 设置的用户名。
####填充了我为 copSSH 定义的非标准 ssh 端口。

我尝试执行命令hg clone ssh://inthom.com,但出现此错误:
remote: bash: inthom.com: command not found
abort: no suitable response from remote hg!

看起来 hg 或 plink 解析主机名,因此它认为 inthom.com 是一个命令,而不是 ssh 到的服务器。这真的很奇怪。

接下来,我尝试只使用 plink 通过 连接plink -P #### ssh://inthom.com,然后提示我输入用户名和下一个密码。我同时输入它们,然后出现此错误:
bash: ssh://inthom.com: No such file or directory

所以现在看起来 plink 没有正确解析主机名。

我摆弄了一会儿,试图弄清楚如何用一个空的 ssh:// 字段调用 hg clone ,最终发现这个命令允许我访问服务器并在 inthom.com 服务器上克隆一个测试 repo:
hg clone ssh://!/Repos/test

!是我发现的字符,让我将主机名留空,但指定要克隆的 repo 文件夹。

我真正不明白的是 plink 是如何知道要 ssh 到哪个服务器的。我的 mercurial.ini 和命令都没有指定服务器。hg clone我见过的例子都没有一个!特点。它们都使用一个地址,这是有道理的,因此您可以通过 ssh 连接到您想要克隆的任何repo。

我唯一的猜测是它以某种方式默认为我使用 PuTTY 进行 SSH 连接的最后一个服务器,但我通过 SSH 连接到另一台服务器,然后尝试使用 plink 访问它,但 plink 仍然默认为 inthom.com(已验证-v arg 链接)。所以我完全不知道 plink 如何获得这个服务器值。

为了“好玩”,我尝试使用 TortoiseHg 并且只能在我ssh://!/Repos/test用作 Source 时克隆一个 repo。

现在,您可以看到,由于 plink 没有正确解析主机名,我必须在 mercurial.ini 文件中指定端口号和用户名,而不是在主机名中,如 username@inthom.com:####你会期望的。一开始试图弄清楚这一点让我发疯了,因为我会收到无法联系到主机的错误,我知道不应该这样。

我的问题是如何配置我的设置,以便将 ssh://username@inthom.com:####/Repos/test 正确解析为要复制的用户名、主机名、端口号和 repo?我使用的 plink 版本有问题,还是我可能搞砸了一些设置?如果是 plink 的错,我可以使用其他工具吗?

我将尝试让我的朋友设置连接到同一个 repo,所以我想要一个干净的解决方案而不是这个!业务。尤其是当我不知道 plink 如何获得这个默认服务器时,所以我不确定他是否能够正确访问 inthom.com。

PS。我不得不使用大量不同的教程才能达到这个阶段。因此,我还没有尝试将任何更改推送到服务器。希望我能弄清楚这一点,然后我可以尝试将更改推送到 repo。