お世話になっております。
しゃまとんです。

環境構築のテストをしていて、ssh前の環境から鍵情報をもってきてgit操作したいなーと思い調査していた際のメモです。
やりたかったのは

自分PC → Server(user:shamaton) → Server(user:hoge)

の流れでログインし、最終的にhogeになった状態でgit操作したい、でした。 はじめはsudo su hogeとかでなんとか出来ないかなーと思っていたのですが、どうやら無理みたいでした。

ということでssh localhost hogeという手段をとり、鍵をそのまま使えるようにしようと思いました。
ただ、hogeに関しては外部からログインできないようにしたくどうしようかというところ、調べてみるとsshのMatchキーワードを設定すると実現できました。

以下、設定方法です。

一応、バックアップしておきます

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
sudo vi /etc/ssh/sshd_config

デフォルトのパスワード認証は無効にしておきます

PasswordAuthentication no

そしてローカル環境だけパスワード認証できるようにします

Match Address 127.0.0.1
PasswordAuthentication yes

Matchのキーワードには User, Group, Host, Addressが設定できるようです。

Match User hoge, fuga Host localhost
PasswordAuthentication yes

とすると、hogeとfugaはローカルからのパスワード認証を許可することができます。

設定後は再起動しておきましょう。

sudo /etc/rc.d/init.d/sshd restart

この際に編集していたシェルは万が一のために残しておいて、別のシェルから確認作業しましょう。

簡単に設定できました。細かいユーザー分けもできそうですね。
以上です。