如何在没有 root 的主机上设置 VPN 服务器?
我有以下限制:
tun
设备。tsocks
使用代理。可行的一件事是在 B 上的 VM 中运行我的客户端软件,然后对整个 VM 进行袜子化 - 但我真的不想走那条路。我不相信有一种优雅的方法可以做到这一点 -正确的方法是询问 A 的管理员,或者将 B 插入同一个网络 - 但现在我只是好奇这是否可以作为证明的概念。
我想将 ssh 的输出通过管道传输到不同的命令。例如:
ssh myserver cat remote-file | diff local-file -
Run Code Online (Sandbox Code Playgroud)
问题是我的服务器要求输入密码,但我无法输入。(出于某种原因,服务器上不提供公钥身份验证。我无法更改这一点。)我收到“密码:”提示,但我键入的密钥被回显,并且没有传递给 ssh。如何让 ssh 获取密码?
注意我不是试图将密码通过管道传输到 ssh。我正在尝试通过管道传输 ssh 的输出,并像往常一样输入密码。
以防万一,我在 OS X 10.7 (Lion) 和标准终端上使用 bash。我没有设置可能导致这种情况的别名。我在不同的(Linux)系统上看到了同样的问题,所以我相信这不是我的设置所特有的。
当我在 bash 命令行中按下某些键(例如德语变音符号)时,我会得到转义序列。例如,ß给我\303
. 这些转义序列被视为单个字符,因此一个退格键会删除整个序列。该字符只是在命令行上显示错误,但它被正确解释,例如键入echo
ß给出:
$ echo \303
ß
Run Code Online (Sandbox Code Playgroud)
我猜它有非 7 位 ASCII 字符的问题。然而,在其他所有地方,这些都可以正常工作。我可以在 vim 中使用它们或用 cat 显示它们,而且 unicode 字符也可以正常工作。
如何让 bash 正确显示这些字符?
作为记录,
TERM=xterm-256color
LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
从我的.inputrc:
set input-meta on # Enable Meta input with eighth bit set
set meta-flag on # Synonym for the above
set convert-meta off # Do NOT strip the eighth bit
set output-meta on # Enable Meta output with eighth bit set
Run Code Online (Sandbox Code Playgroud)
输出 stty -a
speed 38400 baud; rows …
Run Code Online (Sandbox Code Playgroud)