登录后如何在 PuTTY 中运行远程命令并保持 shell 运行?

Art*_*eev 44 ssh putty

我想要做的是:从命令行启动 PuTTY 会话,登录到远程机器和cd提供的目录。

putty.exe -agent -ssh some.host
Run Code Online (Sandbox Code Playgroud)

这将打开一个会话并使用我的默认登录名和私钥登录。

echo cd /some/remote/path/ > c:/stuff/cmd.txt
putty.exe -agent -ssh some.host -m 'c:/stuff/cmd.txt'
Run Code Online (Sandbox Code Playgroud)

这将打开一个会话,登录,执行命令(cd在本例中)并退出

如何打开会话、登录cd并保持会话打开?

背景:我在windows下使用emacs,经常使用tramp & plink在远程Unix机器上编辑文件。我想制作一个热键,为该远程机器打开 PuTTY 会话,并将 chdirs 指向该文件的目录。在 emacs 方面没什么大不了的,但我坚持使用 PuTTY。

Mar*_*ryl 39

-m它的作用是让 PuTTY 指示 SSH 服务器启动该命令 INSTEAD 代替 shell。因此,一旦您的命令完成,会话也将完成。

如果你想在cd命令之后运行 shell ,你需要将它显式添加到你的cmd.txt,例如:

cd /my/path ; /bin/bash
Run Code Online (Sandbox Code Playgroud)

-m暗示“nopty”/非交互模式。要使用交互式 shell,您需要使用-tswitch覆盖它。

putty.exe -ssh example.com -m "c:\path\cmd.txt" -t
Run Code Online (Sandbox Code Playgroud)

或者使用KiTTY及其-cmd开关,它可以满足您的需求(并且不需要临时文件)。