Recently, someone (who is using Windows10) ask me that his VSCode's remote (ssh) connect is unavailable. After a bunch of checking, I found his ~/.ssh/authorized_keys
ends with "^M" (in Vim) and removing that symbol resolves his problem.
To modify/remove "^M" is easy. But this time I'd like to figure out what is "^M" and how it is generated? Knowing how it is generated would help people avoid generating "^M" and related issues.