1. How I generate the public and private key on Mac Maverick
ssh-keygen -t rsa
touch authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub | ssh "user@hostname" 'cat >> .ssh/authorized_keys'
2. My java code of authentication
try {
//Authenticate using a public key
PublicKeyAuthenticationClient pk = new PublicKeyAuthenticationClient();
pk.setUsername(username);
// Open up the private key file
SshPrivateKeyFile keyfile = SshPrivateKeyFile.parse(new File(keyfile));
SshPrivateKey key = keyfile.toPrivateKey(password); ———— this line generate an error
// Set the key and authenticate
pk.setKey(key);
int result = sshclient.authenticate(pk);
if(result != AuthenticationProtocolState.COMPLETE) {
Exception ex = new Exception("Login to " + hostname + " failed result=" + result);
throw ex;
}
}
catch (Exception ex) {
sshclient.disconnect();
System.out.println("Unable to authenticate with " + hostname + ex.toString());
}
error:
com.sshtools.j2ssh.transport.publickey.InvalidSshKeyException: Can't read key due to cryptography problems: java.security.NoSuchAlgorithmException:
Unsupported passphrase algorithm: AES-128-CBC
3. My private key and public key print out
Private Key File : -----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,80E6215A7A6068D5936A78262E98737A
ReX4aJRok103WlJRXdJfJkY6TXZKIcWeI6fdNYYQOhJD+GdewB2i8Lv143x7pJI6
uddhfBcYePgBNMss5OnXpWVRBTxONWqeFKS9nuNBF2V5ewlwDt+PLBZRukXenFOj
PJahyzXpZhh+R9uUD3w90gVpEnbf3fiyowXOP6f5f4Vm/tgoYHqdu12n6Cdu4Agt
CDJubQ5hDBZQmDNxeoahXeeVJITd+L4eb0f/xJ/GrjbAmTdGYFFDJjghNS1AxVoq
XH7owKS/PauRznZDqR3chaw8O5t2oh1xH1DDEPuxnf2BTTxaT30sFfCqF+P9Lpio
edgPxMgbfJoFzKJmtVMz6O7demXaq86Z2Qucun9HnoGbcqUBHl5UFW+SiX7hw+KJ
AB6k9laJ8VKKdwCzpt9alqyyatyexuHowv8syIFwPYgqi6sQX3maLTAIBMSxIMR1
OZzE6aAcnK3721flHDhHsP151CVscn+z73JTY1KfRyFhoniujE6x8hfFrFaRrJKv
xjcsF81GI5S/J9N97hR5bp0sO9s1RpARV1r35M74EjlJS9ozO6dPTea/7OHLtwIr
mXOsJoQKqjDNkRJ+ezhHmtKUt3ES/y3uYOrc40ll7lOMfu2Oq3bf506blkh20VQk
XHsFPjHy72nweIgihLQZLtpYJYlg7QAi81uO/74sFwBxc0lmhEJkCxsUHYAl6R0o
zl4bGC1U9KS9MCf2j5Js/pyVAbbS5yFba5NrvKGRg/f94Wotf6+cA2YPEdUmJcpl
q5ic8N0Pr7l2AFQH2sOWm5DpfCz+XBgLPB13WMUPXXNRvga1vcki8Cb2IY9eNJzw
lYDqvTiK1VO9zdIcGYAf0hj6ctuHxwNZ7bSNEnheMsDMoB+E/JhzT07sxKg2ELUo
kOCOTXd2Mtons6Bhpl+tfjSQDjdiLz1F8/J2NEcz2SyFR+3FNi8h4Rz7mJhwBOUi
mO0/KQ+UY0ArD+REin/elZN615P8fThSCRqDVpaJoPtLx2tjBwUbLC+fyng/yEbp
PUb+ohIanEmUB7DDhjQN7Ad7RhWNkqm1Ybb30AS4Gce/CohuXe3bOoY5a+v6Pq2n
G3BqfzvLUeHMAorznPBiEQ07Xj5PNCo4alBEk3wSUsnolcFGdqhljL6Xjl1LrxzA
+cVmjmT4RnlaTu7brplmkIvP2SC5xLidsXD1brZIyTEepi2HRcqVriFBPaSZh/in
ktUmroqshhC0ANz+rhtAmBzeVeHh4pbV8KiMaU2ShQfdqeqHpDV7ZA1ZyW/SJZ6j
TEENm5hPuYL6lsGjCcJjZgABCcsqTAyaYL27DCHEWQFewtwT+lvlfiMfB7/wpbcL
6GbBNZEsoKCvjUlpaYcLBsx3cmS9W5hW7I1wnkEzo4fw+hXkVFXfmn+mc5HzdS8h
14cWNlTlmkou4XbqQvjbMU1BmgZ1ShNCzMzjW9Cvrto0K6hs9XGKCkVYnjNCNLlh
HVLkD4cE1bAzWet82+OYTOSUlJACeao96namOzYd5Z/LZY/CWhY55pjhgpIVQpxw
/k+Vad1E7v/3bXlAfENr8vA+WC84KgR8feN1+6MzOL9i1iDNOOErYffmNQdG1ra3
-----END RSA PRIVATE KEY——
And my public key:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+zCTF2rHJ/XQm6v+Wy6Z5muvA2lDL7pnJ2L0ShrooutHjxqppDVvPhYyzaGrqgc2uVSMtRsefsDcvDHVOtJ4uw3iVzMlSlaWz42aNGDMSVat2q25Tp/67jOaI9IqlFTSydlcIU2J23hMupw6ffQXo8U2CY3OXqsEyuKlL4Ka0eYCNa5GnumcTzyKWtJSL5+H6LgIONDvXqLQakjEJ7llg1nE1nGksi0nmG6MTqRTOTfgatnnYL2cNgLYx3NhzTFgLpDqg0cQ8WuVg/HZYHwTnL5CT3970nTex6rxL8Gpismeqc83U6i2SSeI6OZziSWlRq4MXc83WkaybbX6T3ul3 user@servername
Could someone tell me what did I do wrong. Why j2ssh cann't read my private key??? Thanks a lot.
lucy