Key is invalid Key type is forbidden. Most SSH clients now support this algorithm. It provides for an extensible variety of public key algorithms for identifying servers and users to one another. Running file command on the created file returns PEM RSA private key. Must be RSA, DSA, ECDSA, or ED25519 Fingerprint cannot be generated. Then paste the key that fails into a new file, and try to verify that: $ ssh-keygen -l -f test.pub test.pub is not a public key file. OpenSSH 6.5 [OpenSSH-6.5] introduced support for using Ed25519 for server and user authentication and was then followed by other SSH implementations. python-ed25519's sig = sk.sign(message) returns 64 bytes with just the detached signature, and vk.verify(sig, message) must be given both this signature and the original message, as two separate arguments. Add your SSH private key to the ssh-agent and store your passphrase in the keychain. PublicKey is the type of Ed25519 public keys. Ed25519 is a digital signature system. Generate a new ED25519 SSH key pair: ssh-keygen -t ed25519 -C "firstname.lastname@example.org" Or, if you want to use RSA: ssh-keygen -o -t rsa -b 4096 -C "email@example.com" The -C flag adds a comment in the key in case you have multiple of them and want to tell which is which. type PublicKey byte func (PublicKey) Equal ¶ 1.15 func (pub PublicKey) Equal(x crypto.PublicKey) bool fatal: Could not … type PublicKey ¶ 1.13. Must be RSA, ECDSA, or ED25519. If you created your key with a different name, or if you are adding an existing key that has a different name, replace id_ed25519 in the command with the name of your private key file. As a result, when you send the signed message over a network message or store it in a file, you must deliver two things, not just one. Yet, when I try to push my code, I get. Use the ssh-keygen command to generate SSH public and private key files. This can be achieved by passing crypto.Hash(0) as the value for opts. I then did cat on the public key, and pasted on gitlab.com, and saved. $ ssh-add -K ~/.ssh/id_ed25519 The options are as follows: -A For each of the key types (rsa, dsa, ecdsa and ed25519) for which host keys do not exist, generate the host keys with the default key file path, an empty passphrase, default bits for the key type, and default comment. 可能原因： 有可能你是直接在 .ssh文件夹下用记事本打开并直接复制了，这样操作可能导致了识别错误。 解决办法： We would recommend always using it with 521 bits, since the keys are still small and probably more secure than the smaller keys (even though they should be safe as well). bits. Azure currently supports SSH protocol 2 (SSH-2) RSA public-private key pairs with a minimum length of 2048 bits. ed25519 - this is a new algorithm added in OpenSSH. In my case I had been copying the key from terminal output using cat; instead getting the key from vim worked. Here is way to open the key in vim with word wrap enabled: $ vim "+set wrap" ~/.ssh/id_rsa.pub Thus opts.HashFunc() must return zero to indicate the message hasn't been hashed. GitLab: Your SSH key type is forbidden. The form contains the following errors: Fingerprint has already been taken Fingerprint cannot be generated Key type is forbidden. 至此，git及gitlab相关配置已经全部完成，接下来可以使用git从gitlab上克隆代码来测试相关安装和配置的正确性 Only three key sizes are supported: 256, 384, and 521 (sic!) 在搜索框中搜索：SSH Keys; 点击 Add SSH Keys; 拷贝公钥文件(即1.2中生成的id_rsa.pub)中的信息到key输入框中，title可以随便起，见名知意即可。然后点击Add Keys . Must be RSA, ECDSA, or ED25519 – Felipe Henrique 23/11/18 às 15:27 Create an SSH key pair. It is optional. Other key formats such as ED25519 and ECDSA are not supported. Supported SSH key formats.