私の大学では、UNIXサーバーへのログインにKerberosベースの認証を使用しています。
パスワードなしのログインを取得する1つの方法は、kinit
を実行し、パスワードを入力してから、ssh@Host
を実行することです。
この設定では、.ssh/config
内で次のことを行います。
Host SchoolHost1 SchoolHost2
GSSAPIKeyExchange yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
私の質問は、kinit
ステップをスキップしてssh
を直接実行できるかどうかです。これにより、ssh
の最初の試行で自動的にKerberosチケットが取得され、その後の試行でto ssh
にはチケットがあり、パスワードは必要ありませんか?
更新:サーバーはログイン前にauthorized_keys
ファイルを読み取ることができないため、公開鍵ログインは大学のシステムでサポートされていますnot。これはKerberos / AFS
システムのプロパティであり、実際には回避策はありません。
あなたのラップトップでは、~/.bash_login
または~/.bashrc
ファイルのssh
を再定義します
ssh ()
{
kinit -R || kinit -r 8days
command ssh "$@"
}
可能であればチケットを更新します。そうでない場合は、AFSサイトポリシーに同意する場合は、新しいチケットを作成します。
公開鍵ログインは可能ですが、ラップトップを本当に暗号化できない場合の最後の手段としてのみです。sshサーバーで、秘密鍵(ある場合)を~/.ssh/
から~/.ssh/private/
、chmod 700
に移動します。 fs setacl
は秘密鍵を保護し、fs listacl ~/.ssh/private/
はアクセス権があることだけを再確認し、最後に~/.ssh
と~/.ssh/authorized_keys
を誰でも読み取れるようにしてsshd
がそれらを表示できるようにしますログインするには-しかし、( kinit -R || kinit -r 8days ) && aklog; klist
のようなことをするまでは、AFSアクセスがありません-したがって、scp
は/tmp/
を見ることができますが、/afs/
は見ることができません。 scp
がログインした後、ファイルにアクセスする前にチケットを取得するには、お知らせください。
はい、簡単なスクリプトでこれを行うことができます:
#!/bin/bash
klist || kinit
ssh user@Host
これをPATH
に入れて、sshの代わりに実行します。
これは、klist
ユーティリティを使用して機能します。アクティブなチケットがない場合、klist
は失敗し、kinit
が実行されます。アクティブなチケットがある場合、klist
は成功し、kinit
は実行されません。
私はこれを徹底的にテストしていないので、おそらくそれには大きな問題があります。