新しいサーバーをつくって、ローカルPCからsshでログインしようとした際に上記のエラーが出ました。

検索してみたけど、日本語の情報があまり出てこなかったのでメモしておきます。

原因は本当にしょうもなくて、configファイルの記述ミスでした。

Host ssh-host
  HostName hostname.example.com
  User username-example
  IdentityFile ~./ssh/ssh-host/private.rsa

こんな感じで記述したところ、以下のようなエラーが。

$ ssh ssh-host
tilde_expand_filename: No such user .

sshとの関係で調べてみても、それらしい情報に出会えず。

和訳すると「チルダのファイル名展開」みたいな意味です。

チルダか~…と思いながらconfigを見直してみたら、誤入力を発見しました。

Host ssh-host
  HostName hostname.example.com
  User username-example
#  IdentityFile ~./ssh/ssh-host/private.rsa # <- ~の後ろに '.'が入っている
  IdentityFile ~/.ssh/ssh-host/private.rsa # <- '~/.ssh'に修正

普通に入力ミスでした。

No such userじゃなくて、 No such file だったらすぐに気づいたんだけど…

ちなみに、チルダの後ろの誤入力を「foobar」にしたら、ちゃんと(?)

$ ssh ssh-host
tilde_expand_filename: No such user foobar

というエラーになりました。

誤入力には気を付けましょう、という話でした。

あなたのお役に立てましたらうれしいです。