You can convert your SSH public key (id_rsa.pub) to a PEM public key file with the following Python script (cribbed from this blog post):
#!/usr/bin/python
# usage: sshpub2pem.py id_rsa.pub > id_rsa.pub.pem
import sys, base64, struct
from pyasn1.type import univ
from pyasn1.codec.der import encoder as der_encoder
keydata = base64.b64decode(
open(sys.argv[1]).readlines()[0].split()[1])
parts = []
while keydata:
dlen = struct.unpack('>I', keydata[:4])[0]
data, keydata = keydata[4:dlen+4], keydata[4+dlen:]
parts.append(data)
e_val = long(parts[1].encode('hex'), 16)
n_val = long(parts[2].encode('hex'), 16)
pkcs1_seq = univ.Sequence()
pkcs1_seq.setComponentByPosition(0, univ.Integer(n_val))
pkcs1_seq.setComponentByPosition(1, univ.Integer(e_val))
pkcs1_val = der_encoder.encode(pkcs1_seq)
head_seq = univ.Sequence()
head_seq.setComponentByPosition(0, univ.ObjectIdentifier('1.2.840.113549.1.1.1'))
head_seq.setComponentByPosition(1, univ.Null(''))
out_seq = univ.Sequence()
out_seq.setComponentByPosition(0, head_seq)
out_seq.setComponentByPosition(1, univ.BitString("'%s'H" % pkcs1_val.encode('hex')))
print '-----BEGIN PUBLIC KEY-----'
print base64.encodestring(der_encoder.encode(out_seq)).strip()
print '-----END PUBLIC KEY-----'
With id_rsa.pub.pem, you should be able to run
openssl rsautl -encrypt -pubin -inkey ~/.ssh/id_rsa.pub.pem -in sensitive-data -out encrypted-data
and decrypt with
openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in encrypted-data -out sensitive-data