SSH構成ファイルでユーザーを強制する方法

SSH構成ファイルでユーザーを強制する方法

特定のホストのユーザーにアクセスしようとしています。私はこれに会ったポイント必要なドメインアカウントごとに新しいホストエイリアスを作成する手順を削除すると、改善できます。

~/.ssh/config

Host github.com bitbucket.org bitbucket.com
    User git

Host *
  Protocol 2
  UseKeychain yes
  AddKeysToAgent yes
  IdentitiesOnly yes
  IdentityFile ~/.ssh/%r@%h_id_rsa

Hostname残念ながら、その他のプロパティとは異なり、これを設定してもPortUser gitは変更されません。

$ ssh -Tv [email protected]

GitHubはまだユーザー認証を試みていますtarranjonesgit

debug1: Authenticating to github.com:22 as 'tarranjones'

解決策はありますか?

答え1

コマンドラインで指定されたユーザーをオーバーライドできません。デフォルト値は指定されていない場合にのみ提供されます(〜/ .ssh / configにデフォルト値が指定されていない場合は、返されwhoamiたログイン名が使用されます)。したがって、次のコマンドを使用すると、期待どおりに機能します。ssh -Tv github.com

次のように、実際のホスト名に対応する値だけでなく、実際にホストを任意の値に設定できます。

Host gh
    Hostname gh
    User git

それからそれを使うことができますssh -Tv gh

答え2

Host *以下を削除することもできます。

IdentityFile %d/.ssh/%r@%h_id_rsa
Protocol 2
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes

Host github.com bitbucket.org bitbucket.com
  User git

コマンドラインでユーザー名を指定しないでください。これにより、構成のユーザー名が上書きされます。

答え3

IdentityFile(~/.ssh/%r@%h_id_rsa)は、%r認証%hに使用されるリモートユーザーとリモートホストと常に同じです。

この例では、私は変更しました。Hostname

Host github.com bitbucket.org bitbucket.com
  IdentityFile ~/.ssh/%r@%h_id_rsa
  Hostname newhostname.com

テスト

$ ssh -Tv [email protected]

結果

debug1: Authenticating to github.com:22 as 'tarranjones'
debug1: Offering RSA public key: ~/.ssh/[email protected]_id_rsa

この例では変更しました。User

Host github.com bitbucket.org bitbucket.com
  IdentityFile ~/.ssh/%r@%h_id_rsa
  User git

テスト

$ ssh -Tv [email protected]

これで、リモートホスト名は変更されませんが、変更された場合は、対応するIdentityFile名が無効であることを意味します。

debug1: Authenticating to github.com:22 as 'git'
debug1: Offering RSA public key: ~/.ssh/[email protected]_id_rsa

percent_expandリモートホスト名を使用すると、名前付き%hIDファイルでは機能しません。認証に使用されるリモートホスト名と異なる場合は、必ずそれをハードコードする必要があります。

私が考えることができる最善はこれです。

#Set Git User Domains
Host *-github.com *-bitbucket.org *-bitbucket.com
  User git

#IdentityFile
Host tarranjones-*
  IdentityFile ~/.ssh/tarranjones@%h_id_rsa

Host otherusername-*
  IdentityFile ~/.ssh/otherusername@%h_id_rsa

#Hostnames
Host *-github.com
  Hostname github.com

Host *-bitbucket.com *-bitbucket.org
  Hostname bitbucket.org

Host *
  Protocol 2
  UseKeychain yes
  AddKeysToAgent yes
  IdentitiesOnly yes

使用法

$ ssh -Tv tarranjones-github.com

結果

debug1: Authenticating to github.com:22 as 'git'
debug1: Offering RSA public key: ~/.ssh/[email protected]_id_rsa

更新されたハイライトを見る

関連情報