jmmckee@xxxxxxxxxxxxxx wrote:
Now, below is the screen I get when I attempt to connect to an sftp
site. This connection works with FileZilla, but not with sftp. Is
there a parameter I need to use? I changed the site name in the
message, in case anybody wonders why it looks strange.
This is what SSH is *supposed* to do. It's protecting you against
man-in-the-middle attacks.
You see, SSH's encryption stream will encrypt data as it travels over
the internet. The only place the data can be read (unless of course
someone cracks the encryption) is on the site where it's sent from, and
the site where it's sent to. And that's what you want, right?
The problem is: This protection doesn't help if you're connecting to
the wrong site! It does you no good to send the data encrypted, if you
connect to evilhacker.com and send them all of your secrets.
The reason we encrypt private Internet data is because we don't have a
direct connection to the computer we're sending it to. Instead, we have
to go through routers on other people's networks. Our Internet
provider's network, for example. And whomever provides our ISP's
internet feed. And so forth. Then the Internet backbone. Then the ISP
on the other end of the connection, etc. Usually your communications
will go through 12-15 networks before reaching their destination.
If a hacker is able to compromise any of the computers in that "route
over the internet", they're able to see the data you send. So we
encrypt it to protect against it.
The problem is... if they're able to compromise one of those routers,
they're ALSO able to re-direct the connection to another computer.
Maybe their own computer! So a solution like SSH/SFTP or SSL can be
easily compromised by forcing you to connect to the hacker's computer
instead of your intended destination. Once again, the encryption does
no good in that circumstance because (as far as SSH/SSL/SFTP can tell)
the data is arriving at the intended destination.
That's why SSL has certificates. So you can verify that you're talking
to the entity that you expect to be talking to.
It's also why SSH/SFTP has the "known hosts" file. Once you connect
successfully ONCE, subsequent connections will verify that they're to
the same host. That way, you know you're not being redirected to
someone else.
That's why you're getting that "SOMEONE MAY BE DOING SOMETHING NASTY"
notice from SSH. Because you're NOT connecting to the same host.
The fact that FileZilla doesn't give you this message is rather scary!
I had a high opinion of FileZilla prior to reading your message... now
I'm thinking that it's not very secure, and frankly, it's not following
the rules of the SSH protocol (which is what sftp uses -- it uses the
SSH protocol, not the FTP protocol, to communicate.)
If you really want to bypass this checking, then write a script (to run
under PASE) that deletes the host from the "known_hosts" file, and then
runs the sftp command with:
sftp -o "StrictHostKeyChecking no"
The StrictHostKeyChecking option controls whether it asks the user
whether the host's key fingerprint is correct or not. If you set it to
"yes" it'll only connect if the host is already in the known_hosts file.
If you set it to "ask" (the default) it'll ask the user whether the
host should be added to the known_hosts file. If you set it to "no"
it'll automatically add it to the known_hosts file without asking.
SSH/SFTP will never connect to an untrusted host, so you must delete the
host's key from the known_hosts file FIRST, then use the above option to
stop it from asking the user whether to add the key.
deleting the key from the known_hosts file can be a simple "grep -v"
command...
As an Amazon Associate we earn from qualifying purchases.