WindowsPCからLinuxサーバにsshで接続しました。
Macからであればこれまでログインしていましたが、今回初めてWindowsから試行しました。
コマンドプロンプトからbashを起動して、ログインはできるのですが、下記のメッセージが表示されます。
-bash: warning: setlocale: LC_CTYPE: cannot change locale (C.UTF-8): No such file or directory
同じサーバにMacからのssh接続は問題ありません。
ということで、原因は初めて使ったWindows上のLinux環境に問題があると考えました。
で、試したことはこれです。
下記コマンドで、コマンドの出力を日本語に変更。
hoge@DESKTOP-0OQ0IAC:~$ sudo apt install language-pack-ja
続いて「locale」を更新。
hoge@DESKTOP-0OQ0IAC:~$ sudo update-locale LANG=ja_JP.UTF-8
一度、bashをとコマンドプロンプトを閉じて起動します。
LANG変数を確認し、dateコマンドを実行して日本語表示するかを確認するとこうなります。
hoge@DESKTOP-0OQ0IAC:~$ echo $LANG
ja_JP.UTF-8
C:\Users\hoge>bash
hoge@DESKTOP-0OQ0IAC:/mnt/c/Users/hoge$ cd
hoge@DESKTOP-0OQ0IAC:~$ date
2022年 1月 26日 水曜日 15:40:47 JST
Macの時は秘密鍵のパスフレーズを覚えてくれたのですが、Linuxなので覚えてくれないようです。
(これまでは sshコマンドに-Aオプションを付けて鍵を渡していました)
覚えさせるには.bashrcの最後に下記を追加して、
# Setup ssh-agent
if [ -f ~/.ssh-agent ]; then
. ~/.ssh-agent
fi
if [ -z "$SSH_AGENT_PID" ] || ! kill -0 $SSH_AGENT_PID; then
ssh-agent > ~/.ssh-agent
. ~/.ssh-agent
fi
ssh-add -l >& /dev/null || ssh-add
再度bashを起動するとパスフレーズの入力を要求されて、そこへ入力するとsshコマンドでは秘密鍵のパスフレーズの入力は不要になりました。
↧