为 linux 到 solaris 会话设置 ssh

为 linux 到 solaris 会话设置 ssh

当我 ssh 到我的远程服务器(一台运行 SunOS 5.9 并使用 C-shell 作为默认登录 shell 的 Solaris 计算机)时,我遇到以下问题:

  • TERM 变量未定义:我需要手动将此变量设置为 xterm 才能编辑文件,否则我会收到一条不友好的消息:

我不知道你使用的是哪种终端 - 我只有“xterm-256color”。

  • 键盘不能被很好地识别:
    • 退格键清理完整的命令行缓冲区。我在这里找到了解决方案
    • tab 执行一个选项卡,而不是自动完成
    • del 键将垃圾放入控制台缓冲区 (^[[)
    • 箭头键将垃圾放入控制台缓冲区 (^[) 并插入 A、B、C、D,而不是在 vi 中移动光标。
    • 可能更多

我找到了一些使用 stty 命令来修复退格键的方法(此处:退格键、Tab 键在终端中不起作用(使用 ssh)),但我需要完全重新映射键盘......

如何设置 ssh 会话来修复登录时的术语问题和键盘问题?

PS:远程“用户”是所有开发人员使用的“共享”帐户,位于我们的后端发行版中。我不想触摸 .*rc 脚本以避免任何不需要的副作用

答案1

由于它是一个共享帐户(不会讨论这通常是多么不明智)-并且您正在使用 csh,因此您需要做两件事

  1. 创建一个与 .login 文件类似的个人环境文件(.login 对应于 csh,.profile 对应于 bash、sh 等。
  2. 登录后输入source 'file_just_created'

在您创建的文件中,您可以为退格键执行一些简单的操作 - 无论您已经在做什么,例如,

stty erase ^H

另外,对于您的术语设置 - 只需添加到文件中即可!

setenv TERM xterm

或任何您需要/适用于您的终端会话的值

概括-mySetupFile使用一个或多个 stty 命令创建, setenv TERM myFavTermName并在提示符下登录后添加 和source mySetupFile

额外:您还可以查找 xterm 的 terminfo 文件,例如,/usr/share/lib/terminfo/x/xterm如果/usr/share/lib/terminfo/x/xterm-256color不存在,如果允许,请查看是否

ln /usr/share/lib/terminfo/x/xterm /usr/share/lib/terminfo/x/xterm-256color

解决您的编辑问题。

如果可行的话,还可以做其他事情(要创建和定义新的 terminfo,请使用命令ticaka术语信息编译器iirc.可能会让很多人开心。

答案2

在您的用户的主目录中,您应该有一些隐藏的登录脚本文件。以您的用户身份打开 SSH 会话,通过运行 pwd 命令确保您登录到家庭。如果没有 cd $HOME 到达那里。

在那里用 ls -la 列出内容以显示隐藏文件。您应该有一个 .login、.cssh、.bashrc、.ksh 或类似的命名文件,在您登录时执行。您可以在此处设置自定义命令,或导出环境变量。

设置通过 ssh 连接传递的环境变量的另一个选项是编辑服务器上的 /etc/ssh/sshd_config 文件,通过将 AcceptEnv MYVAR.txt 设置为接受新的环境变量。您还必须设置客户端 SSH 程序来发送这些变量供 ssh 服务器端接收,然后通过设置 SendEnv MYVAR 来设置它们。

答案3

Solaris 上的 csh 是 Bill Joy 的原始 csh,它使用 Escape 而不是 Tab 来进行自动完成(并且只有在set filec第一次使用时才会激活),并且没有命令行编辑,无论有或没有箭头键。如果您需要这些功能,则需要使用 tcsh。

相关内容