windows gitをバージョンアップしたらgit pull /git pushできなくなって直した方法メモ
TortoiseGitでコミットしようとしたら
gitのバージョンが古いとエラーが出たので
widnowsのgitをバージョンアップした
コミットしてpushしようとしたら
git pull
Unable to negotiate with [hostname] port 20022: no matching host key type found. Their offer: ssh-rsa,ssh-dss
fatal: Could not read from remote repository.
とエラー出てPushできなくなっていた
(git pull も同様のエラー)
・サーバー(git) gitlite
最後にpushできた履歴を確認してみる
gitと同じサーバー立てているRedmineがリポジトリ参照しているので確認
Redmineからは参照できる
一ヶ月くらい前(最後にPushしたところまで見えているよう)
(趣味ベースのリポジトリなのでたまにしかPushはしていない、、)
WindowsからSSHだと接続できる(ssh接続時はPort=20022指定している)
git push エラーの内容にはport 20022とあるが
.git/configの
リモートリポジトリ指定にはPort=20022の記載が無いので
.git/configでは、
~/.ssh/configで指定されているサーバー指定を使用しているようだ
色々調べていると
~/.ssh/config
に
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
の記載、追加すると動きそうだ
(参考URL:https://qiita.com/fala/items/0b11969de1ed6c738d38)
で最初コマンドプロンプトで
cd ~/.ssh/config
とやってみると
エラーになった ※1
cd ~/ = c:\Users[ユーザー名]
なのでとりあえずエクスプローラーで
ファイル
c:\Users[ユーザー名].ssh/config
を開いて該当の箇所に
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
と追記した
例)こんな感じ
HOST xxx <- sshで接続する際の別名定義
HOSTNAME xxx <- 接続するホスト名とかIPアドレスとか
USER xxx <- 接続User名:gitliteならgitoliteとか
HostKeyAlgorithms +ssh-rsa <-これを追記(その1)
PubkeyAcceptedKeyTypes +ssh-rsa <-これを追記(その2)
PORT 20022 <-20022に指定サーバー立てていたので、、通常は大体 22
IDENTITYFILE ~/.ssh/xxx <-鍵ファイル
↑ファイル修正ー>保存後 git pull / git push 以前のようにできるようになりました!!
[※1]
cd ~/.ssh/configコマンドプロンプトだとエラーになるけど、PowerShellなら使えるよ