8

これはあなた方の何人かにとって些細なことかもしれないことを私は知っています。

私はLinuxの専門家ではないので、gitをいじってみようとしています。~/.ssh/authorized_keysそのために、公開SSHキーをユーザーgitのに追加してみたかったのです。

ただし、問題は、パテを使用してgitユーザーを使用してサーバーにログインすると、という名前のファイルにアクセスできないことです~/.ssh/authorized_keys

authorized_keysだから私はrootでそれをやろうとしました、多分これが解決策です、しかし私はユーザーごとに1つあると思いました。

許可されたキーは表示されますが、すべてを台無しにするわけではないので、これについて明確にしたいと思います。gitユーザーアカウントを使用して変更する方法はありssh/authorized_keysますか?

どうもありがとう!

4

4 に答える 4

14

もうすぐそこにいるようですね!あなたが何をしていて、何をしていないのか正確にはわかりませんので、プロセス全体を説明します。

まず、コンピューターがWindowsを実行していると推測しています(puTTYを使用しているため)。その場合は、最初にGit for Windowsをインストールする必要があります。これは、Gitの公式Webサイトからダウンロードできます。ダウンロードしてインストールし、インストーラーのデフォルトの選択を受け入れます。

これにより、スタートメニューにGitBashという項目が残ります。これを使用して、次に来ることを実行します。(実際にはGit自体をインストールする必要はありませんが、Git for Windowsインストーラーはssh-keygen必要になるような追加のツールをいくつか追加します。)

コンピュータが実際にWindowsではなくLinuxまたはMacOSXを実行している場合は、必要なツールがすでに用意されています。同じ手順に従うことができますが、Git Bashを使用してコマンドを入力する代わりに、ターミナルウィンドウを使用します。

これからは、「ターミナルで」入力することに言及します。Windowsを使用している場合は、GitBashウィンドウにこれらを入力します。

ステップ1:自分のコンピューターで、SSHキーペアを確認します

ターミナルで、次のように入力します。

ls ~/.ssh/id_rsa*

これにより、id_rsaとid_rsa.pubの2つのファイルがリストされます。存在する場合は、手順2に進みます。存在しない場合は、次のように入力します。

ssh-keygen

次に、プロンプトに従ってそれらを作成します。次に、lsコマンドを再度実行して、それらが現在そこにあることを確認します。

ステップ2:公開SSHキーをサーバーにアップロードする

公開鍵はid_rsa.pubと呼ばれるものです。scp次のコマンドを使用して、サーバーにアップロードできます。

scp ~/.ssh/id_rsa.pub git@my-server.com

プロンプトが表示されたら、gitユーザーのパスワードを入力します。

ステップ3:gitユーザーのauthorized_keysファイルにキーを追加します

最初にgitユーザーとしてサーバーにSSHで接続します。

ssh git@my-server.com

gitユーザーのパスワードをもう一度入力します。gitユーザーとしてログインしたら、次のように入力します。

mkdir -p ~/.ssh/

.sshディレクトリがまだ存在しない場合は、これにより作成されます。存在する場合は、何もしません。

次に、authorized_keysファイルにキーを追加します。

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

これにより、アップロードしたファイルであるid_rsa.pubの内容が取得され、authorized_keysファイルの最後に追加されます。authorized_keysが存在しない場合、このコマンドは最初にそれを作成します。

>>(注:コマンドラインに2つの直角括弧()を入力する場合は十分に注意してください。2つの直角括弧は、 id_rsa.pubの内容をauthorized_keysファイルに追加することを意味します。1つだけを使用する場合は、authorized_keysの内容をid_rsa.pubのコンテンツであり、それは望ましくありません。)

これが機能したことを確認するには、各ファイルを実行catし、authorized_keysの最後にid_rsa.pubの内容が表示されていることを確認します。

cat ~/id_rsa.pub
cat ~/.ssh/authorized_keys

それを確認したら、id_rsa.pubを削除します。二度と必要ありません。

rm ~/.ssh/id_rsa.pub

最後に、.sshディレクトリと.ssh / authorized_keysにアクセス許可を設定して、これらのファイルの所有者(gitユーザー)のみがアクセスできるようにします。そうしないと、SSHサーバーはそれらの使用を拒否します。それで:

chmod 700 ~/.ssh
chmod 400 ~/.ssh/authorized_keys

これにより、ディレクトリはgitユーザーのみが使用できるようになり、その中のファイルはgitユーザーのみがアクセスできるようになります。

あなたは今あなたが行ってもいいと思うはずです!

于 2013-02-11T20:42:37.460 に答える
1

.ssh ディレクトリとファイル authorized_keys はデフォルトでは存在しないため、作成する必要があります。ディレクトリのパーミッションが 0700 で、その中のファイルのパーミッションが 0600 であることを確認してください。そうしないと、ssh が機能しません。

于 2013-02-11T20:10:00.427 に答える