ラベル ssh の投稿を表示しています。 すべての投稿を表示
ラベル ssh の投稿を表示しています。 すべての投稿を表示

2015年9月7日月曜日

keychain が gpg をロードしない

keychain のバージョンは 2.8.1 で何時からか gpg をロードしなくなりました。
前までは以下のように .bash_profile に記述してました。

keychain --quiet "$HOME"/.ssh/id_rsa
[ -z "$HOSTNAME" ] && HOSTNAME=$(uname -n)
[ -f "$HOME/.keychain/$HOSTNAME"-sh ] && \
    source "$HOME/.keychain/$HOSTNAME"-sh
[ -f "$HOME/.keychain/$HOSTNAME"-sh-gpg ] && \
    source "$HOME/.keychain/$HOSTNAME"-sh-gpg

この状態で 2.7.1 に keychain を置き換えてログインすると ssh と gpg のエージェントが起動されるのは確認しました。2.8.1 になってから何か追加でオプションが必要になったのかもしれないと思い man を眺めてました。man ページの最後にサンプルがあるんですが、それと比べても違いはない状態です。

なんだろうなぁー。と man ページを眺めてると --agents なるオプションがあってもしかしてと思い次のようにしてみました。

keychain --agents gpg,ssh --quiet "$HOME"/.ssh/id_rsa
[ -z "$HOSTNAME" ] && HOSTNAME=$(uname -n)
[ -f "$HOME/.keychain/$HOSTNAME"-sh ] && \
    source "$HOME/.keychain/$HOSTNAME"-sh
[ -f "$HOME/.keychain/$HOSTNAME"-sh-gpg ] && \
    source "$HOME/.keychain/$HOSTNAME"-sh-gpg

こうした後、ログアウトしてログインすると gpg-agent が起動しました。今まで気が付かなかったんだけど、いつからこうなってたんだろうって感じですね。

2015年8月15日土曜日

Tmux で sudo したあとに window 名がホスト名になるのを回避する

Tmux で sudo したあとに window 名がホスト名になるのを回避する

前回の記事で ssh した後に ssh を切断しても window 名がリモートホストのままになるのを解決したわけですが、sudo を使っても同じような現象になってしまうのでこれを解決します。

方法としては同じような事をしています。

if [ -n "${TMUX}" ]; then
        function sudo() {
                export local window_name
                window_name=$(tmux display -p '#{window_name}')
                command sudo "$@"
                tmux rename-window "$window_name"
        }
fi

とまあ function sudo() を定義して window 名を戻しているだけです。

2015年8月10日月曜日

Mosh 1.2.5 リリース

Mosh 1.2.5 リリース


Mosh の新しいバージョンがリリースされていました。このバージョンから IPv6 をサポートしているようです。まあ IPv6 サポートはまだまだ恩恵があるとは思えないのですが、こうしてサポートされていると安心ですね。

2015年7月20日月曜日

keychainでWarningがでるので対応

keychain で Warning がでる

keychain で鍵をロードするときに次のような警告が表示される。「Warning: Can’t determine fingerprint from the following line, falling back to filename」
これは OpenSSH_6.8p1 から FingerprintHash の形式が MD5 から SHA256 に変更に なったために発生している。

Warning 出力がウザいのでパッチ適用

ディストリビューションのパッケージで導入したか手動でインストールしたかで /usr/bin だったり /usr/local/bin になっていたりすると思うが、 keychain そのものはシェルスクリプトなので簡単にパッチを適用することが出来る。

アップストリームを参考にして以下のパッチを適用。

--- keychain.orig       2015-07-20 17:14:59.035940170 +0900
+++ keychain    2015-07-20 17:14:50.524857975 +0900
@@ -812,6 +812,11 @@
                 #   1024 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 /home/barney/.ssh/id_dsa (DSA)
                 echo "$ef_line" | cut -f2 -d' '
                 ;;
+            *\ SHA256:[0-9a-zA-Z\+\/=]*|*\ MD5:[0-9a-zA-Z\+\/=]*)
+                    # The new OpenSSH 6.8+ format,
+                    #   1024 SHA256:mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE /home/barney/.ssh/id_dsa (DSA)
+                    echo "$ef_line" | cut -f2 -d' '
+                    ;;
             *)
                 # Fall back to filename.  Note that commercial ssh is handled
                 # explicitly in ssh_l and ssh_f, so hopefully this rule will

これで Warning が出なくなる。アップストリームでは既に解決しているようだが ディストリビューションのパッケージにまだ来てないので一時しのぎ。

2015-07-21追記: Gentoo で対応されたようです。

2015年6月30日火曜日

tmuxでsshしたあとステータスラインの名称がリモートのままになるのを解決する

Tmux を使っていて ssh をリモートホストに行うとステータスラインが ssh を抜けた後もリモートの名称のままになっていて、どう考えてもミスする原因になるので、以下を .bashrc に記述しました。


function ssh() {
       export local window_name
       window_name=$(tmux display -p '#{window_name}')
       command ssh "$@"
       tmux rename-window "$window_name"
}

これで、ssh を抜けた後はもとのウインドウ名に戻ります。ローカルだと思ってその環境がリモートだったりしたら怖いですよね。

追記: このままだと tmux を起動していないときエラーが出るので if で判定するようにした。

if [ -n "${TMUX}" ]; then
        function ssh() {
                export local window_name
                window_name=$(tmux display -p '#{window_name}')
                command ssh "$@"
                tmux rename-window "$window_name"
        }
fi

こんな感じでどうでしょう?