Saya mencoba terhubung dari server Gentoo ke RHEL saya. Keduanya telah mosh
diinstal, namun saya mendapatkan kesalahan ini:
petanb@localhost ~/Documents $ mosh root@server
mosh-server needs a UTF-8 native locale to run.
Unfortunately, the local environment ([no charset variables]) specifies
the character set "US-ASCII",
The client-supplied environment ([no charset variables]) specifies
the character set "US-ASCII".
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
Connection to server closed.
/usr/bin/mosh: Did not find mosh server startup message.
Di RHEL saya memiliki lokal berikut:
# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Bagaimana saya bisa memperbaikinya?
UPDATE: Masalahnya tampaknya di sisi Gentoo, menyambung ke server debian menghasilkan kesalahan yang sama, menghubungkan menggunakan karya distro lain.
UPDATE2: Saya memperbaikinya dengan menambahkan
LANG="en_US.UTF-8"
export LANG
ke ~/.bashrc
Jawaban:
Solusi Sederhana
sumber
LC_ALL="en_US.UTF-8" mosh root@server
mosh
menggunakan lingkungan lokal yang didukung olehssh
. Meskipunmosh
tampaknya tidak memiliki opsi verbose atau debug, Anda dapat menentukanssh
perintah apa yang digunakan saat menghubungkan dan dengan menambahkan-vvv
opsi dapatssh
menunjukkan variabel lokal apa yang dikirim .Misalnya, dimulai dengan
Anda mungkin melihat
untuk POSIX, dan
yang menunjukkan bahwa server mengkonfirmasi variabel yang digunakan. Remote
sshd
mungkin mengabaikan beberapa lingkungan Anda tergantung pada pengaturanAcceptEnv
dalam konfigurasi untuksshd
- atauSendEnv
pengaturan pengguna Anda (dalamssh
konfigurasi Anda ).Tidak semua server menerima variabel lokal Anda melalui ssh.
Bahkan dengan pengaturan konfigurasi permisif, masih mungkin (terutama karena Anda terhubung ke pengguna root ) bahwa seseorang telah memutuskan bahwa lokal untuk pengguna itu harus POSIX. Untuk root , itu masuk akal karena Anda akan mendapat masalah lebih sedikit dengan memilih / menempelkan penyalinan.
Sebagai contoh, beberapa sistem digunakan
/etc/profile.d/lang.sh
untuk mengatur lokal untuk penggunaan interaktif. Skrip itu berbeda dari satu sistem ke sistem lainnya, dan merupakan tempat kedua (setelah konfigurasi ssh / sshd) untuk dipertimbangkan ketika mencari penjelasan mengapa informasi lokal tidak diteruskan ke sistem jarak jauh. Dengan Red Hat (CentOS) skrip mencoba untuk mendapatkan informasi dari konfigurasi sistem dan rumah, misalnya,SuSE berbeda, membuat asumsi tentang ssh dan gdm sebelum membaca file yang sama:
Untuk server khusus Anda (versi tidak ditentukan), skrip mungkin berbeda dari satu rilis ke rilis lainnya. Server Debian saya tidak memiliki file itu - dan mengandalkan lokal sistem default dan gdm (yang dapat berbeda) untuk mengatur lokal interaktif. Koneksi ssh Anda dapat menggunakan nilai yang berbeda dengan sistem lokal daripada sesi interaktif menggunakan X (via gdm). Dalam hal itu, sistem lokal adalah tempat untuk memperbaiki (lihat Lokal di wiki Debian).
sumber