新しいパッケージ管理システムとしてNixosを使用した開始後、Azure DevOpsリポジトリとRSA SSHキー内のgitを使用するときは、次のエラーが発生します。
jaroslavbezdek@mac> git pull
Unable to negotiate with 40.74.28.9 port 22: no matching Host key type found. Their offer: ssh-rsa
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
_
私はそれを使えば、どうぞ?
SSHでは、いくつかの種類のキーとRSAキーがあります(ssh-rsa
)種類は複数種類のシグネチャをサポートできます。署名タイプssh-rsa
は、SHA-1を搭載したRSAを指し、シグニチャタイプrsa-sha2-256
はSHA-256とrsa-sha2-512
がSHA-512でRSAです。
Azure DevOpsの場合、SHA-1を使用したRSAの種類のみをサポートし、SHA-1は非常に弱いと考えられています。これは基本的にSSH上でそれに接続するための安全な方法がないことを意味し、それを修正するまでは、HTTPSまたは別のホスティングサービスを使用しているのが好きです。 GitHub、GitLab、およびBitbucketすべての認証方法をサポートします。
現時点ではAzure DevOpsでSSHを使用する必要がある場合は、これを回避するために~/.ssh/config
ファイルにエントリを追加できます。
Host ssh.dev.Azure.com
User git
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
ただし、これは回避策であり、不安定であることが知られているので、この問題についてAzure DevOpsに連絡して、自分が実行するまでHTTPSに切り替えるか、他の場所に移動する必要があります。