Linux 實戰 / ssh

ssh encoding

  今天來討論一下ssh連接過程中,本地主機與遠程主機字符集不匹配時如果規避中文亂碼的問題。

約定

系統 主機名 字符集
CentOS Linux release 7.0.1406 centsos gbk
Linux Mint 18.0 LTS qwfys utf-8

無參數場景

lwk@qwfys ~ $ ssh root@centsos
Last login: Sat May  5 14:31:12 2018 from 112.10.209.123

Welcome to aliyun Elastic Compute Service!
[root@centsos ~]# locale
LANG=zh_CN.gbk
LC_CTYPE="zh_CN.gbk"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME="zh_CN.gbk"
LC_COLLATE="zh_CN.gbk"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="zh_CN.gbk"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=
[root@centsos ~]# 

[root@centsos ~]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
[root@gx193 ~]# java
: java [-options] class [args...]
           (ִ)
     java [-options] -jar jarfile [args...]
           (ִ jar )
ѡ:
    -d32      ʹ 32 λ ()
    -d64      ʹ 64 λ ()
    -server   ѡ "server" VM
                  Ĭ VM  server,
                  Ϊ

    -cp <Ŀ¼ zip/jar >
    -classpath <Ŀ¼ zip/jar >
                   : ָĿ¼, JAR 
                   ZIP , 
    -D<>=<ֵ>
                  ϵͳ
    -verbose:[class|gc|jni]
                  ϸ
    -version      Ʒ汾
    -version:<ֵ>
                  : ˹ʱ, 
                  δ
                  Ҫָİ汾
    -showversion  Ʒ汾
    -jre-restrict-search | -no-jre-restrict-search
                  : ˹ʱ, 
                  δ
                  汾/ר JRE
    -? -help      Ϣ
    -X            ѡİ
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  ָö
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  ȵĶ
    -esa | -enablesystemassertions
                  ϵͳ
    -dsa | -disablesystemassertions
                  ϵͳ
    -agentlib:<libname>[=<ѡ>]
                  ر <libname>,  -agentlib:hprof
                   -agentlib:jdwp=help  -agentlib:hprof=help
    -agentpath:<pathname>[=<ѡ>]
                  ·ر
    -javaagent:<jarpath>[=<ѡ>]
                   Java ,  java.lang.instrument
    -splash:<imagepath>
                  ʹָʾĻ
Ϣ,  http://www.oracle.com/technetwork/java/javase/documentation/index.html
[root@centsos ~]# exit
dz
Connection to centsos closed.
lwk@qwfys ~ $ 

帶參數場景

lwk@qwfys ~ $ luit -encoding gbk ssh root@centsos
Last login: Sat May  5 14:34:06 2018 from 112.10.209.123

Welcome to aliyun Elastic Compute Service!

[root@centsos ~]# java
用法: java [-options] class [args...]
           (執行類)
   或  java [-options] -jar jarfile [args...]
           (執行 jar 文件)
其中選項包括:
    -d32      使用 32 位數據模型 (如果可用)
    -d64      使用 64 位數據模型 (如果可用)
    -server   選擇 "server" VM
                  默認 VM 是 server,
                  因爲您是在服務器類計算機上運行。

    -cp <目錄和 zip/jar 文件的類搜索路徑>
    -classpath <目錄和 zip/jar 文件的類搜索路徑>
                  用 : 分隔的目錄, JAR 檔案
                  和 ZIP 檔案列表, 用於搜索類文件。
    -D<名稱>=<值>
                  設置系統屬性
    -verbose:[class|gc|jni]
                  啓用詳細輸出
    -version      輸出產品版本並退出
    -version:<值>
                  警告: 此功能已過時, 將在
                  未來發行版中刪除。
                  需要指定的版本才能運行
    -showversion  輸出產品版本並繼續
    -jre-restrict-search | -no-jre-restrict-search
                  警告: 此功能已過時, 將在
                  未來發行版中刪除。
                  在版本搜索中包括/排除用戶專用 JRE
    -? -help      輸出此幫助消息
    -X            輸出非標準選項的幫助
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  按指定的粒度啓用斷言
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  禁用具有指定粒度的斷言
    -esa | -enablesystemassertions
                  啓用系統斷言
    -dsa | -disablesystemassertions
                  禁用系統斷言
    -agentlib:<libname>[=<選項>]
                  加載本機代理庫 <libname>, 例如 -agentlib:hprof
                  另請參閱 -agentlib:jdwp=help 和 -agentlib:hprof=help
    -agentpath:<pathname>[=<選項>]
                  按完整路徑名加載本機代理庫
    -javaagent:<jarpath>[=<選項>]
                  加載 Java 編程語言代理, 請參閱 java.lang.instrument
    -splash:<imagepath>
                  使用指定的圖像顯示啓動屏幕
有關詳細信息, 請參閱 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
[root@centsos ~]# exit
登出
Connection to centsos closed.

小結

可以用如下命令配合ssh進行。

lwk@qwfys ~ $ luit -encoding 字符集 ssh 用戶名@遠程主機

這裏寫圖片描述

參考文獻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章