読者です 読者をやめる 読者になる 読者になる

脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

Windows + Cygwin SSHD の環境変数問題

リモートにWindows + Cygwin SSHD環境がある。

ここにssh接続して作業を行っているのだけど、
ssh経由でシェルを立ち上げると、Windows環境変数が一部しか引き継がれない。
これにより、一部ツールが動作しない事がある。

(今回はBerkshelfで、NUMBER_OF_PROCESSORSが引き継がれず動かなかった)

しかし、ssh経由でシェルを立ち上げないと、ssh-agent(SSH_AUTH_SOCK)が引き継がれない。
うーん・・。


仕方ないのでとりあえずこんな方法で乗り切っている。
いい方法はないものか。

1. ssh接続してシェルを立ち上げ、SSH_AUTH_SOCK確認

[local]$ ssh -A x.x.x.x
[remote]$ env | grep SSH_AUTH_SOCK
SSH_AUTH_SOCK=/tmp/ssh-ppgBxWarw0/agent.2252

2. リモートのWindowsで、cygwin経由でシェルを立ち上げ、SSH_AUTH_SOCK設定。リモートデスクトップで。

[remote]$ export SSH_AUTH_SOCK=/tmp/ssh-ppgBxWarw0/agent.2252
[remote]$ screen -US share

以降はこのscreenの仮想ターミナルを使うので、デタッチしておいてよい。

3. (1) のシェルから(2)で作った仮想ターミナルにアタッチ。

[remote]$ screen -USx share