プロジェクトのgitリポジトリを設定しようとしていますが、毎回パスワードを再入力する必要がないようにsshキーを使用したいと思います。私は偶然にsshにコピー操作をさせる可能性を見つけましたが、ssh-copy-id
それは私にとってはうまくいかないようです。
$ ssh-copy-id -i git@server
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:
"/c/Users/Me/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to
filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are
prompted now it is to install the new keys
git@server's password:
sh: 1: cannot create .ssh/authorized_keys: Permission denied
編集する:私は次のように問題を解決しました。 - su 経由で root にログイン -authorized_keys ファイルの所有権をchown git /home/git/.ssh/authorized keys
git に変更し、再び git にログイン - 最後に rw 権限を 600 via に変更し、chmod 600 ~/.ssh/authorized keys
キーを正常にコピーしました。
答え1
アカウントが git のみで使用される場合、管理者はそのアカウントを制限されたアカウントに設定して git コマンドのみを実行できるようにすることをお勧めします。特に、gitアクセスはアカウントの資格情報と制限を変更するのに十分ではありません。これは~/.ssh/authorized_keys
ユーザーが書き込めないことによって行われます。通常、Web インターフェイスなどの資格情報を設定する帯域外メカニズムがあります。
管理者であれば、Gitアカウントの設定方法をより深く理解する必要があります。 SSHサーバーの設定を確認します(/etc/sshd_config
またはファイルがある場所を/etc/ssh/sshd_config
確認します(設定)。ファイルが見つかったら公開鍵を追加します。ファイルは行のリストにすぎず、各ファイルには通常公開鍵の直接コピーが含まれています。使用に関する制限事項(例:)ファイルの末尾に追加する必要があるかどうかを確認してください。authorized_keys
AuthorizedKeysFile
authorized_keys
.pub
command="git-shell" nopty no-agent-forwarding no-port-forwarding no-X11-forwarding
答え2
このエラーを検索すると、最初の検索結果にこの質問が表示されたため、解決策も追加します。
私の知る限り、許可とは何の関係もありません。何らかの理由で(実際にはクイックフィックスを見つけたため、調べようとしませんでした)、プログラムはsshコマンドを実行したときに正しいIDファイルを見つけませんでした。 1つの回避策は、SSHプログラムが使用したいリモートサーバーにSSHキーを追加することです。コマンドに-vを追加すると、コマンドを実行したときにSSHプログラムが実行する操作を観察できます。
ssh -v username@your-host-ip-or-domain
その後、SSHプログラムはローカルコンピュータ(Macなど)で使用したい公開鍵を取得します。
cat ~/.ssh/id_rsa.pub
...これをリモコンのAuthorized_keysファイルに追加します。
~/.ssh/authorized_keys
私の場合のもう一つのより良い解決策は、ローカルSSH設定ファイルにカスタムホストを追加することです。私のMacでは、次のようになります。
/Users/my-user-name/.ssh/config
たとえば、ここに次の内容を追加できます。
Host mynewserver
HostName some.IP.number.or.domain
Port 20000 #if custom port is used and not the default 22
User the_root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_for_my_new_server
次に、次を実行します。
ssh mynewserver
...チャジャン
答え3
「A」と「B」という2台のコンピュータがあるとし、Aから「B」に接続しようとしています。
したがって、マシンBで次のことを行います。
vi /etc/ssh_sshd_config
次に、この2行を検索して以下のように変更します。
PasswordAuthentication yes
PermitRootLogin yes
次に、「B」システムでsshdサービスを再起動します。
service sshd restart
これで、「A」システムから「B」システムにキーをコピーすると、正しく機能することを願っています。
ssh-copy-id [email protected]