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 用戶名@遠程主機
參考文獻